Установка Docker и Docker Compose в CentOS 8
Docker Compose - это инструмент для определения и запуска многоконтейнерных приложений на основе Docker. Он позволяет описать конфигурацию и зависимости между контейнерами в виде файла YAML (YAML Ain’t Markup Language) и запустить их с помощью одной команды. Он обеспечивает упрощение управления сложными приложениями, состоящими из множества контейнеров, и позволяет разработчикам фокусироваться на написании кода, а не на настройке окружения.
При установке Docker и Docker Compose в CentOS 8 есть небольшие различия, по сравнению с CentOS 7
Установка Docker
Устанавливаем необходимые пакеты
1
$ sudo dnf -y install -y yum-utils device-mapper-persistent-data lvm2
Добавляем репозиторий Docker CE (Community Edition)
1
$ sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Проверяем
1
2
3
4
$ dnf list docker-ce
[...]
Available Packages
docker-ce.x86_64 3:19.03.12-3.el7 docker-ce-stable
Устанавливаем Docker CE
1
$ sudo dnf -y install docker-ce --nobest
Добавляем нашего пользователя, под которым настраиваем ОС, в группу docker
1
$ sudo usermod -aG docker $(whoami)
Применяем изменения к группам
1
$ newgrp docker
Добавляем сервис в автозагрузку и запускаем его
1
$ sudo systemctl enable --now docker
Проверяем
1
2
$ docker -v
Docker version 19.03.12, build 48a66213fe
Установка Docker Compose
Скачиваем Docker Compose в каталог /usr/local/bin/
1
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Делаем файл исполняемым и создаем симлинк
1
2
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Проверяем
1
2
$ docker-compose -v
docker-compose version 1.26.2, build eefe0d31
Настраиваем Firewall
Для того, что бы контейнеры могли общаться с внешней сетью, используя IP-адрес хоста вместо собственных IP-адресов контейнеров, добавим правило add-masquerade
в Firewall
1
2
$ sudo firewall-cmd --zone=public --add-masquerade --permanent
$ sudo firewall-cmd --reload