Каков наилучший способ автоматического запуска нескольких существующих зависимых контейнеров? - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть контейнер WordPress, который зависит от другого контейнера MySQL.По сути, я хочу автоматически запускать их во время запуска.Поскольку между ними существует зависимость, мне интересно, как я могу обеспечить эту зависимость.

Я посмотрел на docker-compose, но кажется, что docker-compose может манипулировать только изображениями вместо контейнеров.Поскольку я не хочу монтировать volumns из контейнера на свой хост, я не хочу каждый раз создавать новый контейнер.

Я также рассмотрел создание вручную двух сервисов с использованием systemd.Но трудно определить, запущен ли mysql (хотя контейнер запущен, его сервису все еще нужно больше времени.).

Так каков рекомендуемый способ запуска зависимых контейнеров во время запуска?

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

Вы можете использовать параметр depends_on для управления зависимостями. Вот файл compose для вашего сценария использования

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data: {}

Подробнее: https://docs.docker.com/compose/wordpress/

0 голосов
/ 25 декабря 2018

Для вышедших контейнеров команда docker-compose up в основном извлекает последнее изображение и перезапускает ваш контейнер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...