Установка Docker Compose в Debian 9

Как установить Docker Compose и запустить многоконтейнерное приложение на Debian 9.

Docker Compose — инструмент для создания и запуска многоконтейнерных Docker-приложений. Конфигурация сервисов описывается в YAML-файле, что позволяет запускать всё окружение одной командой.

Ключевые возможности:

  • несколько изолированных сред на одном хосте;
  • защита данных томов при пересоздании контейнеров;
  • пересоздание только изменённых контейнеров;
  • перенос переменных между средами.

Перед установкой Docker Compose убедитесь, что Docker уже установлен — инструкция в статье Установка Docker в Debian 9.

Установка

Загрузите актуальную версию Docker Compose из репозитория на GitHub. Перед загрузкой проверьте текущую версию и при необходимости обновите номер в команде:

sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

Назначьте права на выполнение:

sudo chmod +x /usr/local/bin/docker-compose

Проверьте установку:

docker-compose --version

Ожидаемый вывод:

docker-compose version 1.25.5, build 8a1c60f6

Запуск контейнера через Docker Compose

Создайте директорию для тестового проекта и перейдите в неё:

mkdir hello-world
cd hello-world

Создайте файл docker-compose.yml:

nano docker-compose.yml

Добавьте в файл следующее содержимое и сохраните его:

my-test:
 image: hello-world

Первая строка задаёт часть имени контейнера, вторая — образ для его создания. При запуске docker-compose up Docker сначала ищет образ локально, затем загружает его из Docker Hub.

Проверьте список локальных образов:

docker images

Если образов нет, вывод будет содержать только заголовки столбцов:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

Запустите контейнер:

docker-compose up

Docker загрузит образ, создаст контейнер и запустит его:

Creating hello-world_my-test_1 ... done
Attaching to hello-world_my-test_1
my-test_1  | 
my-test_1  | Hello from Docker!
my-test_1  | This message shows that your installation appears to be working correctly.
...
hello-world_my-test_1 exited with code 0

Контейнер останавливается после завершения работы программы. В списке активных процессов он не отобразится:

docker ps

Для просмотра всех контейнеров, включая остановленные, используйте флаг -a:

docker ps -a

Пример вывода:

CONTAINER ID   IMAGE         COMMAND    CREATED         STATUS                     NAMES
4e8158d490ac   hello-world   "/hello"   7 minutes ago   Exited (0) 7 minutes ago   hello-world_my-test_1

Помощь

Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!

Обновлено:
Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам