Запуск конкретного сервиса из 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, что полезно при управлении сложными приложениями с несколькими сервисами.