Docker Compose это контейнерный инструмент с открытым исходным кодом для запуска много контейнерного приложения Docker. Docker Compose использует синтаксическую структуру YAML, которая обычно используется для конфигурационных файлов, а также для определения и запуска контейнерных приложений.
Compose также поддерживает определение и настройку сервисов приложения в формате YAML.
Главное преимущество Docker Compose заключается в том, что вы можете определить мультиконтейнерное приложение в одном файле, которое раскрутит приложение всего одной командой, что необходимо сделать, чтобы запустить его.
С помощью Compose вы можете управлять всем жизненным циклом приложения:
- Управление службами с помощью start, stop или rebuild
- Просмотр состояния запущенных служб
- Вывод журнала запущенных служб
- Выполните одноразовую команду для службы
В этой инструкции вы узнаете, как установить Docker-compose на Ubuntu 20.04 и как запустить приложение sample-container.
Установка Docker Compose на Ubuntu
Для успешной установки Docker Compose необходимо, чтобы Docker был установлен на Ubuntu 20.04.
После установки Docker вы можете проверить, версию с помощью следующей команды:
$ docker version
Ответ:
Client: Docker Engine - Community Version: 20.10.6 API version: 1.41 Go version: go1.13.15 Git commit: 370c289 Built: Fri Apr 9 22:47:17 2021 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.6 API version: 1.41 (minimum version 1.12) Go version: go1.13.15 Git commit: 8728dd2 Built: Fri Apr 9 22:45:28 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.4 GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e runc: Version: 1.0.0-rc93 GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec docker-init: Version: 0.19.0 GitCommit: de40ad0
Поскольку теперь у нас есть Docker, мы готовы установить Docker compose.
Чтобы установить docker compose из официального репозитория Ubuntu, запустите:
$ sudo apt install docker-compose
Учтите, что эта опция не гарантирует, что вы скачаете последнюю версию docker-compose.
Вместо загрузки Docker Compose из репозитория Ubuntu мы предлагаем загрузить двоичный пакет при помощи URL-адреса. Для этого используйте команду curl:
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Эта команда сохраняет файл в каталоге: /usr/local/bin под именем docker-compose.
Ответ терминала Linux:
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 633 100 633 0 0 5456 0 :--: :--: :--:-- 5456 100 12.1M 100 12.1M 0 0 40.0M 0 :--: :--: :--: 40.0M
Затем нам нужно изменить разрешение файла, сделав загруженный файл исполняемым с помощью следующей команды:
$ sudo chmod +x /usr/local/bin/docker-compose
Теперь проверьте установку и проверьте версию Docker Compose:
$ docker–compose –version
Ответ терминала Linux::
docker-compose version 1.29.2, build 5becea4c
Тест Docker Compose вместе с Sample Container
Создайте новый каталог для примера контейнера образца:
$ mkdir docker-compose-test
Измените каталог, который вы только что создали:
$ cd docker-compose-test
Оттуда создайте конфигурационный файл YAML:
$ sudo nano docker-compose.yaml
И скопируйте следующую конфигурацию в docker-compose в файл yaml, который вы только что открыли:
version: '2'
services:
hello_world:
image: ubuntu
command: [/bin/echo, 'Hello world']
Сохраните это и запустите:
$ docker-compose up
Вы должны увидеть выполненные шаги:
- hello_world(ubuntu)
- Загруженный образ для ubuntu:последняя версия
- Создание docker-compose-test_hello_world_1
- Присоединение к docker-compose-test_hello_world_1
Docker-compose использует имя папки в качестве имени проекта для префикса контейнеров и сетей.
Это создало контейнер из образа ubuntu и запустило команды, которые были указаны в docker-compose.yaml.
Заключение
Из этой инструкции вы узнали, как установить Docker-compose на Ubuntu 20.04 и как запустить приложение sample-container. Docker-compose позволяет запускать несколько контейнеров docker только на одном хосте.