
Docker Compose — это инструмент, позволяющий определять и запускать многоконтейнерные приложения Docker.
С помощью Compose вы определяете службы, сети и тома приложения в одном файле YAML, а затем запускаете свое приложение с помощью одной команды.
Compose можно использовать для различных целей, таких как развертывание приложений на одном хосте, автоматизированное тестирование и локальная разработка.
В этом руководстве мы покажем вам, как установить последнюю версию Docker Compose на CentOS 7. Мы также рассмотрим основные концепции и команды Docker Compose.
Предпосылки
Прежде чем продолжить изучение этого руководства, убедитесь, что выполнены следующие предварительные условия:
- Выполнен вход как пользователь с привилегиями sudo .
- Установите Docker в вашей системе CentOS 7 .
Установка Docker Compose на CentOS
Рекомендуемый метод установки Docker Compose в CentOS 7 — загрузка двоичного файла Compose из репозитория Docker на 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
Вставьте следующее содержимое:
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. - Использует политику «restart
always, которая предписывает контейнеру всегда перезапускаться. - Создает именованный том
db_data, чтобы сделать базу данных постоянной. - Определяет переменные среды для образа
mysql:5.7.
Сервис wordpress :
- Использует образ
wordpress. Если образ отсутствует в вашей системе, Compose загрузит его из публичного репозитория Docker Hub. - Использует политику «restart
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.
Если у вас есть вопросы, пожалуйста, оставьте комментарий ниже.
docker centos Не используете CentOS 7?
Выберите другую ОС: дебиан 10 дебиан 9 убунту 18.04 убунту 20.04
Связанные руководства
- Как установить и использовать Docker в CentOS 7
- Как установить и настроить Zabbix на CentOS 7
- Как установить текстовый редактор Atom на CentOS 7
- Как установить Sublime Text 3 на CentOS 7
- Как установить Visual Studio Code на CentOS 7
- Как установить VMware Workstation Player на CentOS 7
- Как добавить пространство подкачки в CentOS 7