Docker — это система для управления контейнерами, которая стала очень популярна в последнее время. Основное преимущество Docker для разработчика в том, что ему достаточно один раз настроить необходимые контейнеры на своей машине, а потом он сможет переносить свою программу на любой сервер будь то Linux или Windows и там будет всё работать, надо только чтобы был установлен Docker.
Приложение запускается в LXC контейнере в котором установлен дистрибутив Linux и набор программ необходимых для выполнения приложения. Таких контейнеров может быть несколько и они могут взаимодействовать между собой по сети. В этой статье мы разберемся как установить Docker в CentOS 8. Процедура практически такая же как и в CentOS 7, но из-за перехода дистрибутива на nftables есть некоторые отличия.
Установка Docker в CeontOS 8
Чтобы получить самую свежую версию программы необходимо сначала добавить официальный репозиторий Docker в систему:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Затем установка Docker CentOS 8 выполняется командой:
dnf install docker-ce
Данные команды будут актуальны как для Fedora и CentOS 7 только для последней будет необходимо поменять пакетный менеджер на yum и репозиторий будет добавляться по другому.
Далее запустите службу Docker и добавьте её в автозагрузку:
systemctl start docker
systemctl enable docker
systemctl status docker
Поскольку CentOS 8 перешла на новую подсистему брандмауэра — nftables, а Docker поддерживает только iptables, то сеть внутри контейнеров работать не будет. Чтобы это исправить надо включить трафик masquerade с помощью firewalld:
firewall-cmd --zone=public --add-masquerade --permanent
Затем перезагрузите фаервол, чтобы правила активные обновились:
firewall-cmd --reload
Установка Docker Compose
Docker обычно устанавливается вместе с инструментом автоматического развертывания и конфигурирования контейнеров docker-compose. Это как раз та утилита, которая поможет поднять ваш проект на другой машине одной командой. Для её установки выполните:
wget "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)"
mv ./docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Готово, установка docker compose CentOS 8 завершена и вы можете начать работать с этой утилитой.
Проверка работы Docker
Чтобы убедиться что Docker установлен и работает можно посмотреть его версию:
docker --version
А также можно запустить Hello world контейнер:
docker run hello-world
Также можем посмотреть версию docker-compose:
docker-compose --version
Удаление Docker в CentOS
Удалить Docker CentOS можно просто удалив пакет, который вы ранее установили, для этого выполните:
dnf remove docker-ce
Чтобы удалить docker-compose достаточно удалить файл /usr/local/bin/docker-compose, эта утилита находится только там и её нет больше нигде в системе.
Выводы
В этой статье мы разобрали как установить docker CentOS 8 и решить проблему с сетью в контейнерах. Напишите в комментариях хотите ли вы продолжение этой темы в статьях о том, как пользоваться Docker и Docker compose для разворачивания своих приложений.