Android

Как установить и использовать docker compose в Ubuntu 18.04

Docker for Windows Container Development

Docker for Windows Container Development

Оглавление:

Anonim

Docker Compose - это инструмент, который позволяет вам определять и управлять мультиконтейнерными приложениями Docker. Он использует файл YAML для настройки служб, сетей и томов приложения.

Композиция может быть использована для разных целей. Развертывание приложений на одном хосте, автоматическое тестирование и локальная разработка - наиболее популярные варианты использования Docker Compose.

В этом руководстве мы покажем вам, как установить последнюю версию Docker Compose в Ubuntu 18.04, и исследуем основные концепции и команды Docker Compose.

Те же инструкции применимы для Ubuntu 16.04 и любого другого дистрибутива на основе Debian, включая Debian, Linux Mint и Elementary OS.

Предпосылки

Убедитесь, что вы выполнили следующие предварительные условия, прежде чем продолжить этот урок:

  • Вы вошли в систему как пользователь с привилегиями sudo. Устанавливайте Docker, следуя инструкциям из раздела Как установить и использовать Docker в Ubuntu 18.04.

Установите Docker Compose в Ubuntu

Установочный пакет Docker Compose доступен в официальных репозиториях Ubuntu 18.04, но он не всегда может быть последней версией. Рекомендуемый подход - установить Docker Compose из хранилища Docker's GitHub.

На момент написания этой статьи последняя стабильная версия Docker Compose - это версия 1.23.1 . Перед загрузкой двоичного файла Compose зайдите на страницу выпуска Compose репозитория на GitHub и проверьте, доступна ли новая версия для загрузки.

Чтобы установить Docker Compose в Ubuntu 18.04, выполните следующие действия:

  1. Загрузите двоичный файл 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

    После завершения загрузки примените исполняемые разрешения к двоичному файлу 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 в Ubuntu 18.04.

Начните с создания каталога проекта и навигации по нему:

mkdir my_app cd my_app

Запустите ваш текстовый редактор и создайте файл с именем docker-compose.yml в каталоге проекта:

nano docker-compose.yml

Вставьте следующий контент:

докер-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 . Если образ отсутствует в системе, он будет извлечен из общего репозитория Docker Hub. Использует политику перезапуска always которая указывает контейнеру всегда перезапускать. Создает именованный том db_data чтобы сделать базу данных постоянной. db_data переменные среды для mysql:5.7 изображения.

Сервис wordpress :

  • Использует изображение wordpress . Если образ отсутствует в вашей системе, Compose извлечет его из общедоступного репозитория Docker Hub. Использует политику перезапуска always которая предписывает контейнеру всегда перезапускаться. wp_data каталог wp_data на хосте в /var/lib/mysql внутри Контейнер. Пересылает открытый порт 80 на контейнере на порт 8080 на хост-компьютере. depends_on переменные среды для изображения wordpress Инструкция depends_on определяет зависимость между двумя сервисами. В этом примере db будет запущена до wordpress .

Из каталога проекта запустите приложение WordPress, выполнив следующую команду:

docker-compose up

Вывод должен выглядеть примерно так:

… wordpress_1 | AH00163: Apache/2.4.25 (Debian) PHP/7.2.10 configured -- resuming normal operations wordpress_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

docker-compose down

Передача --volumes также удалит тома данных:

docker-compose down --volumes

Удаление Docker Compose

Если по какой-либо причине вы хотите удалить Docker Compose, вы можете просто удалить двоичный файл, набрав:

sudo rm /usr/local/bin/docker-compose

Вывод

Вы узнали, как установить и использовать Docker Compose в Ubuntu 18.04.

Использование Docker Compose может значительно улучшить ваш рабочий процесс и производительность. Вы можете определить свою среду разработки с помощью Docker Compose и поделиться ею с соавторами проекта.

докер убунту