Источник: <https://itdraft.ru/2020/07/27/ustanovka-docker-docker-compose-v-centos-8/>
## Установка Docker
### Устанавливаем необходимые пакеты
```
$ sudo dnf -y install -y yum-utils device-mapper-persistent-data lvm2
```

### Добавляем репозиторий Docker CE (Community Edition)
```
$ sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
```

### Проверяем
```
$ dnf list docker-ce
[...]
Available Packages
docker-ce.x86_64                3:19.03.12-3.el7                docker-ce-stable
```

### Устанавливаем Docker CE
```
$ sudo dnf -y install docker-ce --nobest
```

### Добавляем нашего пользователя, под которым настраиваем ОС, в группу docker
```
$ sudo usermod -aG docker $(whoami)
```

### Применяем изменения к группам
```
$ newgrp docker
```

### Добавляем сервис в автозагрузку и запускаем его
```
$ sudo systemctl enable --now docker
```

### Проверяем
```
$ docker -v
Docker version 19.03.12, build 48a66213fe
```

## Установка Docker Compose
### Скачиваем Docker Compose в каталог /usr/local/bin/
```
$ 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
```

### Делаем файл исполняемым и создаем симлинк
```
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
```

### Проверяем
```
$ docker-compose -v
docker-compose version 1.26.2, build eefe0d31
```

### Настраиваем Firewall
Для того, что бы контейнеры могли общаться с внешней сетью, используя IP-адрес хоста вместо собственных IP-адресов контейнеров, добавим правило add-masquerade в Firewall
```
$ sudo firewall-cmd --zone=public --add-masquerade --permanent
$ sudo firewall-cmd --reload
```