Установка 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
Помощь
Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!