Щоразу, коли я страчу
docker-compose start
docker-compose ps
Я бачу свої контейнери зі станом "UP". Якщо я це роблю
docker-compose up -d
Я побачу більш багатослівний, але він матиме той самий стан. Чи є різниця між обома командами?
Щоразу, коли я страчу
docker-compose start
docker-compose ps
Я бачу свої контейнери зі станом "UP". Якщо я це роблю
docker-compose up -d
Я побачу більш багатослівний, але він матиме той самий стан. Чи є різниця між обома командами?
Відповіді:
початок докер-композиції
( 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/
У докері, які часто задають питання, це пояснюється дуже чітко:
Яка різниця між вгору, запуску та запуску?
Як правило, ви хочете
docker-compose up
. Використовуйтеup
для запуску або перезавантаження всіх служб, визначених у adocker-compose.yml
. У режимі "додавання" за замовчуванням ви бачите всі журнали з усіх контейнерів. У режимі "від'єднаний" (-d
) Compose виходить після запуску контейнерів, але контейнери продовжують працювати у фоновому режимі.
docker-compose run
Команда для запуску «одноразовий» або «AdHoc» завдання. Він вимагає назви служби, яку ви хочете запустити, і запускає лише контейнери для служб, від яких залежить запущена служба. Використовуйтеrun
для запуску тестів або виконання адміністративних завдань, таких як видалення або додавання даних до контейнера обсягу даних.run
Команда діє якdocker run -ti
в тому , що вона відкриває інтерактивний термінал в контейнер і повертає статус виходу , відповідний статус завершення процесу в контейнері.
docker-compose start
Команда корисна тільки для перезапуску контейнерів , які раніше були створені, але були зупинені. Він ніколи не створює нових контейнерів.