Введение
Docker Compose — это инструмент, который позволяет вам определять и запускать многоконтейнерные приложения Docker.
С помощью Compose вы определяете службы приложений, сети и тома в одном файле YAML, а затем поворачиваете приложение с помощью одной команды.
Compose можно использовать для различных целей, таких как развертывание приложений на одном хосте, автоматическое тестирование и локальная разработка.
В этом руководстве вы узнаете, как установить последнюю версию Docker Compose на CentOS 8. Мы также рассмотрим основные концепции и команды Docker Compose.
Предпосылки
Прежде чем продолжить работу с этим учебным пособием, убедитесь, что выполнены следующие предварительные условия:
- Зарегистрировался как пользователь с привилегиями sudo.
- Докер установлен на CentOS 8.
Если вы хотите установить Docker Compose на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Установите Docker Compose на CentOS
Рекомендуемый способ установки Docker Compose в CentOS 8 — загрузка двоичного файла Compose из репозитория Docker на GitHub.
На момент написания этой статьи последней стабильной версией Docker Compose является версия 1.25.1
. Перед загрузкой двоичного файла Compose посетите страницу выпуска репозитория Compose на GitHub и проверьте, доступна ли для загрузки новая версия.
Выполните следующие шаги, чтобы установить Docker Compose на CentOS 8:
Начните с загрузки двоичного файла Compose Docker в каталог /usr/local/bin
с помощью следующей команды curl
:
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.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.25.1, build a82fef07
Введение в Docker Compose
В этом разделе мы покажем вам, как использовать Docker Compose для запуска стека WordPress на вашем компьютере с CentOS 7.
Начните с создания нового каталога для проекта и перехода к нему:
mkdir my_app && cd my_app
Затем создайте файл с именем docker-compose.yml
в каталоге проекта:
vi 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
. Каждая служба запускает образ и создает отдельный контейнер при запуске композиции докеров.
Служба 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 | [ 2020-01-17 22:36:07+00:00] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.10 configured -- resuming normal operations
wordpress_1 | [ 2020-01-17 22:36:07+00:00] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'...
Compose извлекает оба изображения, запускает два контейнера и создает каталог wp_data
в каталоге проекта.
Откройте браузер, введите http://TUO_IP_O_DOMINIO:8080/
и вы увидите экран установки Wordpress.
Чтобы остановить набор, нажмите CTRL+C
Если вы хотите начать сочинять в автономном режиме, используйте флаг -d
:
docker-compose up -d
Starting my_app_db_1... done
Starting my_app_wordpress_1... done
Чтобы проверить, какие службы запущены, используйте параметр 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 8.