Docker compose — это мощный инструмент для создания и управления Docker-контейнерами. Он позволяет создавать, запускать и управлять множеством контейнеров, которые взаимодействуют друг с другом. В этой статье я расскажу о нескольких основных командах, которые могут быть полезны при работе с docker-compose.yml файами.
Команды для управления контейнерами
docker-compose up -d: используется в Docker Compose для создания и запуска контейнеров, указанных в файле docker-compose.yml , который находится в текущей директории. Опция -d
(от «detached») запускает контейнеры в фоновом режиме. Это означает, что после запуска команды терминал не будет занят выводом логов контейнеров, и вы сможете продолжать использовать терминал для других задач.
docker-compose down: используется в Docker Compose для остановки и удаления контейнеров, сетей, томов, указанных в файле docker-compose.yml. Например, команда docker-compose down остановит и удалит все контейнеры, которые были запущены с помощью файла docker-compose.yml из текущей директории.
Команды для управления службами
docker-compose ps: Показывает список всех контейнеров, которые были созданы и управляются текущим проектом Docker Compose. Так же отображает текущее состояние каждого контейнера, что позволяет быстро определить, какие контейнеры работают, а какие остановлены или завершили свою работу. И предоставляет информацию о портах, которые используются контейнерами, а также другие полезные сведения, такие как имена контейнеров и их идентификаторы.
docker-compose up -d [service_name]: Команда запускает только те контейнеры из файла docker-compose.yml название которых вы указали в команде. Например, команда «docker-compose up -d nextcloud» запустит только контейнер nextcloud из файла docker-compose.yml, который расположен в текущей директории.
Команды для управления образами
docker-compose pull: Команда проверяет, какие образы указаны в файле docker-compose.yml, если для каких-либо образов доступны более новые версии в удаленных репозиториях (например, в Docker Hub), команда скачивает эти обновленные образы и заменяет текущие образы в локальном хранилище Docker на скаченные.
docker-compose build: Команда используется для сборки проекта описанного в файле docker-compose.yml, если образы уже существуют, команда пересобирает их, что может быть полезно при внесении изменений в Dockerfile или в исходный код приложения. По умолчанию Docker использует кэш для ускорения процесса сборки. Если вы хотите пересобрать образы без использования кэша, можно добавить опцию —no-cache
Команды для управления логами
docker-compose logs: По умолчанию команда выводит логи всех контейнеров, определенных в docker-compose.yml, в текущей директории. Так же вы можете указать конкретный контейнер, чтобы просмотреть логи только для него. Например:
docker-compose logs [service_name]
где [service_name] — это имя сервиса, определенного в docker-compose.yml, в текущей директории.
Опция -f
(от «follow») позволяет выводить логи в реальном времени, аналогично команде tail -f
в Unix-подобных системах. Пример:
docker-compose logs -f .
Опция --tail
позволяет ограничить количество строк логов, которые будут выведены.
Например, чтобы вывести последние 10 строк логов, введите команду:
docker-compose logs —tail=10
Команды для управления контейнерами в работе
docker-compose stop: Команда останавливает все контейнеры, которые были запущены с помощью docker-compose up или других команд Docker Compose. Остановка контейнеров означает, что все процессы внутри них будут завершены, но сами контейнеры не будут удалены. Контейнеры остаются на диске, и их состояние сохраняется. Это позволяет легко перезапустить их позже с помощью команды docker-compose start, если это необходимо.
docker-compose start: Если контейнеры были остановлены с помощью команды docker-compose stop, команда docker-compose start запустит их снова. Команда полезна, когда необходимо временно остановить контейнеры для выполнения каких-либо операций (например, обновления системы или перезагрузки сервера), а затем снова запустить их без необходимости пересоздания контейнеров.
docker-compose up —force-recreate: Команда используется в Docker Compose для принудительного пересоздания и запуска контейнеров, определенных в файле docker-compose.yml
Опция —force-recreate заставляет Docker Compose пересоздать все контейнеры, даже если они уже существуют. Это полезно, когда вы хотите убедиться, что контейнеры запущены с последними изменениями конфигурации или кода.
После пересоздания контейнеры запустятся в соответствии с конфигурацией, указанной в файле docker-compose.yml текущей директории.