Введение
Docker — это платформа контейнеризации, позволяющая быстро создавать, тестировать и развертывать такие приложения, как переносные автономные контейнеры, которые можно запускать практически в любом месте.
Docker Compose — это инструмент, который позволяет вам определять и организовывать многоконтейнерные приложения Docker. Используйте файл YAML для настройки контейнеров приложений, сетей и томов.
Compose можно использовать для различных целей. Развертывание приложений на одном хосте, автоматическое тестирование и локальная разработка — наиболее популярные варианты использования Docker Compose.
В этом руководстве объясняется, как установить последнюю версию Docker Compose на Debian 10, Buster. Мы также рассмотрим основные концепции и команды Docker Compose.
Предпосылки
Прежде чем продолжить, убедитесь, что выполнены следующие предварительные условия:
- Зарегистрировался как пользователь с привилегиями sudo.
- Докер установлен на Debian 10.
Если вы намерены установить 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 на Debian 10
Установочный пакет Docker Compose доступен в официальных репозиториях Debian 10, но это не всегда может быть последняя версия. Рекомендуемый подход — установить Docker Compose из репозитория Docker на GitHub.
На момент написания этой статьи последней стабильной версией Docker Compose является версия 1.25.0
. Перед загрузкой двоичного файла Compose посетите страницу выпуска репозитория Compose на GitHub и проверьте, доступна ли для загрузки новая версия.
Выполните следующие действия, чтобы установить последнюю версию Docker Compose в Debian 10:
Загрузите бинарный файл Docker Compose в каталог /usr/local/bin
с помощью wget
или curl
:
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Используйте chmod
, чтобы сделать бинарный исполняемый файл Compose:
sudo chmod +x /usr/local/bin/docker-compose
Чтобы проверить установку, используйте следующую команду, которая распечатает версию Compose:
docker-compose --version
Вывод будет выглядеть следующим образом:
docker-compose version 1.25.0, build 0a186604
Введение в Docker Compose
В этом разделе мы покажем, как настроить локальную среду разработки WordPress с помощью Docker Compose.
Создайте каталог для проекта и перейдите к нему:
mkdir wordpress_app && cd wordpress_app
Откройте текстовый редактор и создайте файл с именем docker-compose.yml
:
nano docker-compose.yml
Вставьте следующее содержимое:
version: '3.7'
services:
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
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:8.0
. Если образ отсутствует, Compose извлечет его из общедоступного репозитория Docker Hub. Строка, начинающаяся сcommand
, заменяет команду по умолчанию. - Политика
restart: always
предписывает Compose перезапустить контейнер, если он остановится. - Контейнер будет использовать том с именем
db_data
для сохранения базы данных. - Определяет переменные окружения для
mysql:8.0
.
Сервис wordpress
:
- Используйте изображение
wordpress
. - Смонтируйте директорию
wp_data
на хосте для/var/lib/mysql
внутри контейнера. - Перенаправляет открытый порт
80
в контейнере на порт8080
на главном компьютере. - Определяет переменные среды для изображения
wordpress
. - Оператор
depends_on
определяет зависимость между двумя службами. В этом примереdb
запустится передwordpress
.
Из каталога проекта запустите стек WordPress, выполнив следующую команду:
docker-compose up
Вывод должен выглядеть так:
...
] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
db_1_77746359ac9c | 2019-12-13T20:31:22.109255Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060...
Docker Compose извлекает образы, запускает контейнеры и создает каталог wp_data
в каталоге проекта.
Откройте браузер и перейдите по http://0.0.0.0:8080/
, вы увидите стандартный экран установки WordPress.
На данный момент приложение WordPress активно, и вы можете начать работать с ним.
Чтобы остановить создание, нажмите CTRL+C
Вы также можете начать компоновку в автономном режиме, используя параметр -d
:
docker-compose up -d
Чтобы просмотреть запущенные контейнеры Docker, используйте следующую команду:
docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------
wordpress_app_db_1_77746359ac9c docker-entrypoint.sh --def... Up 3306/tcp, 33060/tcp
wordpress_app_wordpress_1_a428d8408817 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 в Debian 10, просто загрузите двоичный файл в каталог по системному пути и сделайте его исполняемым.