Яка різниця між запуском докер-композиції та початком докер-композиції?


124

Щоразу, коли я страчу

docker-compose start 
docker-compose ps

Я бачу свої контейнери зі станом "UP". Якщо я це роблю

docker-compose up -d

Я побачу більш багатослівний, але він матиме той самий стан. Чи є різниця між обома командами?

Відповіді:


166

початок докер-композиції
( 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/


3
оновлене посилання на посилання CLI docker -compose: docs.docker.com/compose/reference * docker -compose up: docs.docker.com/compose/reference/up * початок docker
michael

18

У докері, які часто задають питання, це пояснюється дуже чітко:

Яка різниця між вгору, запуску та запуску?

Як правило, ви хочете docker-compose up. Використовуйте upдля запуску або перезавантаження всіх служб, визначених у a docker-compose.yml. У режимі "додавання" за замовчуванням ви бачите всі журнали з усіх контейнерів. У режимі "від'єднаний" ( -d) Compose виходить після запуску контейнерів, але контейнери продовжують працювати у фоновому режимі.

docker-compose runКоманда для запуску «одноразовий» або «AdHoc» завдання. Він вимагає назви служби, яку ви хочете запустити, і запускає лише контейнери для служб, від яких залежить запущена служба. Використовуйте run для запуску тестів або виконання адміністративних завдань, таких як видалення або додавання даних до контейнера обсягу даних. runКоманда діє як docker run -tiв тому , що вона відкриває інтерактивний термінал в контейнер і повертає статус виходу , відповідний статус завершення процесу в контейнері.

docker-compose startКоманда корисна тільки для перезапуску контейнерів , які раніше були створені, але були зупинені. Він ніколи не створює нових контейнерів.


чим команда перезапуску відрізняється від будь-якої з цих - запустити, запустити, запустити?
Наг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.