Запуск конкретного сервиса из compose-файла
В предыдущем шаге мы запустили все сервисы из файла docker-compose.yml
с помощью команды docker-compose up
. В этом шаге мы научимся запускать конкретный сервис, если в вашем Compose-файле определено несколько сервисов.
Хотя в нашем текущем docker-compose.yml
есть только один сервис (web
), команда для запуска конкретного сервиса полезна при работе с более сложными приложениями, содержащими несколько сервисов (например, веб-сервер, базу данных и backend API).
Сначала остановим текущий работающий сервис. Для этого используем команду docker-compose down
. Эта команда останавливает и удаляет контейнеры, сети и тома, созданные командой up
.
Убедитесь, что находитесь в директории ~/project/my-compose-app
.
cd ~/project/my-compose-app
Теперь выполните команду docker-compose down
.
docker-compose down
Вы увидите вывод, показывающий остановку и удаление контейнера и сети:
Stopping my-compose-app_web_1 ... done
Removing my-compose-app_web_1 ... done
Removing network my-compose-app_default
Проверить остановку контейнера можно командой docker ps
. В списке не должно быть контейнеров из нашего compose-файла.
docker ps
Теперь продемонстрируем, как запустить конкретный сервис. Команда имеет вид docker-compose up <имя_сервиса>
. В нашем случае имя сервиса — web
. Снова используем флаг -d
для запуска в фоновом режиме.
docker-compose up -d web
Эта команда запустит только сервис web
, определённый в файле docker-compose.yml
. Так как образ уже был загружен на предыдущем шаге, контейнер будет создан и запущен сразу.
Вы увидите примерно такой вывод:
Creating my-compose-app_web_1 ... done
Снова можно проверить статус контейнера web
с помощью docker ps
.
docker ps
В списке должен появиться контейнер my-compose-app_web_1
со статусом Up
.
Таким образом мы показали, как выборочно запускать сервисы из файла docker-compose.yml
, что полезно при управлении сложными приложениями с несколькими сервисами.