Блог

Сергей Сенаторов

Name: Sergey Senatorov

FullStack developer

Docker: быстрый запуск контейнеров

Один из вариантов простого запуска контейнеров – использовать docker-compose. Чтобы он заработал его нужно дополнительно установить из пакетов. В установках на Windows и Mac он уже изначально включен в поставку.

Достаточно описать yml файл и запустить его. В интернете можно найти большое количество готовых файлов по запросу ‘docker compose’. Эти файлы помогают комбинировать отдельные контейнеры в окружения под ваш проект. Допустим, вам для проекта необходимо поднять связку: nginx, php-fpm, elasticsearch, rabbit, memcache – все это можно реализовать в одном docker-compose файле и запускать, что называется, «в один клик».

Небольшой список базовых команд, которые вам могут пригодиться:

Собрать и запустить контейнер в фоновом режиме с помощью docker-compose

docker-compose up --build -d

Собрать(–build) запустить (up) в фоновом режиме(-d). Для отладки иногда бывает полезно не использовать фоновый режим(-d), в таком случае логи ошибок можно будет увидеть сразу при сборке/запуске контейнера. Остановить контейнеры через docker-compose

docker-compose down

Посмотреть текущие контейнеры

docker ps

К созданым контейнерам можно обратиться как по коду (CONTAINER_ID), так и по имени(NAME) и исполнить команду, например, bash

docker exec -it {container} bash

Проверка синтаксиса конфига nginx

docker container exec {container} nginx -t

Перезагрузка конфига nginx внутри контейнера

docker container exec {container} nginx -s reload

Удалить контейнер

docker rm -v {container}

Запустить контейнер из указаного файла

docker-compose -f docker-compose.develop.yml up -d

Скопировать файл с из вашего окружения в контейнер

docker cp file.ext {container}:/path/to/file.ext

Скопировать файл с Docker-контейнера к себе на хост

docker cp {container}:/path/to/file.ext file.txt