В чем разница между запуском докеры и составлением докеры?
Всякий раз, когда я выполняю
docker-compose start
docker-compose ps
Я вижу свои контейнеры с состоянием "UP". Если я делаю
docker-compose up -d
Я увижу более многословное, но будет иметь одно и то же состояние. Есть ли разница между обеими командами?
Ответы
Ответ 1
Docker-составить начало
(https://docs.docker.com/compose/reference/start/)
Запускает существующие контейнеры для службы.
докер-сочинять
(https://docs.docker.com/compose/reference/up/)
Создает, (повторно) создает, запускает и присоединяет к контейнерам для службы.
Если они еще не запущены, эта команда также запускает любые связанные службы.
Команда docker-compose up
агрегирует выходные данные каждого контейнера (по сути, запускает docker-compose logs -f
). Когда команда завершается, все контейнеры останавливаются. Запуск docker-compose up -d
запускает контейнеры в фоновом режиме и оставляет их работающими.
Если для службы существуют существующие контейнеры, а конфигурация или образ служб были изменены после создания контейнеров, docker-compose up
обрабатывает изменения, останавливая и воссоздавая контейнеры (сохраняя подключенные тома). Чтобы запретить Compose принимать изменения, используйте флаг --no-recreate
.
Для полной ссылки CLI:
https://docs.docker.com/compose/reference/
Ответ 2
В докере Часто задаваемые вопросы это объясняется очень четко:
В чем разница между включением, запуском и запуском?
Как правило, вы хотите docker-compose
up
. Используйте up для запуска или перезапуска всех служб, определенных в docker-compose.yml
. В стандартном "прикрепленном" режиме вы видите все журналы из всех контейнеров. В "отдельном" режиме (-d) Compose завершает работу после запуска контейнеров, но контейнеры продолжают работать в фоновом режиме.
Команда docker-compose run предназначена для запуска одноразовых или специальных задач. Требуется имя службы, которую вы хотите запустить, и запускаются контейнеры только для служб, от которых зависит запущенная служба. Используйте команду run для запуска тестов или выполнения административных задач, таких как удаление или добавление данных в контейнер тома данных. Команда run действует как docker run -ti в том смысле, что она открывает интерактивный терминал для контейнера и возвращает состояние выхода, соответствующее состоянию выхода процесса в контейнере.
Команда запуска docker-compose полезна только для перезапуска контейнеров, которые были ранее созданы, но были остановлены. Он никогда не создает новые контейнеры.