Как установить и использовать Docker Compose на CentOS 7
Как установить и использовать Docker Compose на CentOS 7
How to Install and Use Docker Compose on CentOS 7
Из этого руководства Вы узнаете, как установить последнюю версию Docker Compose в CentOS 7. Мы также рассмотрим основные концепции и команды Docker Compose.

Docker Compose - это инструмент, который позволяет определять и запускать мультиконтейнерные приложения Docker.
С помощью Compose вы определяете службы, сети и тома приложения в одном файле YAML, а затем вращаете свое приложение одной командой.
Compose может использоваться для различных целей, таких как развертывание приложений на одном хосте, автоматическое тестирование и локальная разработка.
Убедитесь, что вы выполнили следующие условия, прежде чем продолжить:
- Вы вошли как пользователь с привилегиями sudo .
- Have Docker установлен на вашем CentOS 7 системы.
Установка Docker Compose в CentOS
Рекомендуемый метод установки Docker Compose в CentOS 7 - загрузка двоичного файла Compose из репозитория Docker's GitHub.
На момент написания этой статьи последней стабильной версией Docker Compose была версия 1.23.1
. Перед загрузкой двоичного файла Compose зайдите на страницу выпуска репозитория Compose на GitHub и проверьте, доступна ли для скачивания новая версия.
Выполните следующие шаги, чтобы установить Docker Compose в CentOS 7:
-
Начните с загрузки двоичного файла Docker Compose в
/usr/local/bin
каталог с помощью следующейcurl
команды:sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-
После завершения загрузки сделайте исполняемый файл бинарным , набрав:
sudo chmod +x /usr/local/bin/docker-compose
-
Чтобы проверить установку, введите следующую команду, чтобы напечатать версию Compose:
docker-compose --version
Вывод будет выглядеть примерно так:
docker-compose version 1.23.1, build b02f1306
Начало работы с Docker Compose
В этом разделе мы покажем, как использовать Docker Compose для запуска стека WordPress на вашем компьютере с CentOS 7.
Начните с создания нового каталога для проекта и навигации по нему:
mkdir my_app && cd my_app
Затем создайте файл с именем docker-compose.yml
внутри каталога проекта:
nano docker-compose.yml
Вставьте следующий контент:
version: '3.3'
services:
db:
image: mysql:5.7
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
wordpress:
image: wordpress
restart: always
volumes:
- ./wp_data:/var/www/html
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: password
depends_on:
- db
volumes:
db_data:
wp_data:
Давайте проанализируем код построчно.
Первая строка указывает версию файла Compose . Существует несколько разных версий формата файлов Compose с поддержкой определенных версий Docker.
Далее мы определяем две службы, db
и wordpress
. Каждый сервис запускает один образ и при запуске docker-compose создает отдельный контейнер.
db
:
- Использует
mysql:5.7
образ. Если образ отсутствует в вашей системе, Compose извлечет его из общедоступного хранилища Docker Hub. - Использует
always
политику перезапуска, которая дает указание контейнеру всегда перезапускаться - Создает именованный том,
db_data
чтобы сделать базу данных постоянной. - Определяет переменные среды для образа
mysql:5.7
.
wordpress
:
- Использует
wordpress
образ. Если образ отсутствует в вашей системе, Compose извлечет его из общедоступного хранилища Docker Hub. - Использует
always
политику перезапуска, которая дает указание контейнеру всегда перезапускаться - Монтирует
wp_data
каталог на хосте/var/lib/mysql
внутри контейнера. - Пересылает открытый порт 80 на контейнере на порт 8080 на хост-компьютере.
- Определяет переменные среды для образа
wordpress
. depends_on -
инструкция определяет зависимость между двумя службами. В этом примереdb
будет запущено раньшеwordpress
.
Из каталога проекта раскрутите приложение WordPress с помощью следующей команды:
docker-compose up
Вывод должен выглядеть примерно так:
...
wordpress_1 | [Sat Oct 13 21:30:48.286382 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.10 configured -- resuming normal operations
wordpress_1 | [Sat Oct 13 21:30:48.286425 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
Compose вытянет оба образа, запустит два контейнера и создаст wp_data
каталог в каталоге вашего проекта.
Откройте браузер, введите, http://0.0.0.0:8080/
и вы увидите экран установки Wordpress.
На этом этапе приложение WordPress запущено и работает, и вы можете начать работать над своей темой или плагином.
Для остановки Compose нажмите CTRL+C
. Переменные окружения Если вы хотите запустить Compose в отдельном режиме, используйте -d
флаг:
docker-compose up -d
Для проверки запущенных сервисов используйте опцию ps
:
docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
my_app_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
my_app_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp
Когда Compose работает в автономном режиме, чтобы остановить использование сервисов:
docker-compose stop
Чтобы полностью удалить контейнеры, используйте опцию down
:
docker-compose down
Передача --volumes
коммутатора также удалит тома данных:
docker-compose down --volumes
Удаление Docker Compose
Если вы хотите удалить Docker Compose, просто удалите двоичный файл, используя следующую команду:
sudo rm /usr/local/bin/docker-compose
Вывод
Вы узнали, как установить и использовать Docker Compose на CentOS 7.