Установка Docker в CentOS 8

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

Затем установка Docker CentOS 8 выполняется командой:

dnf install docker-ce

Данные команды будут актуальны как для Fedora и CentOS 7 только для последней будет необходимо поменять пакетный менеджер на yum и репозиторий будет добавляться по другому.

Далее запустите службу Docker и добавьте её в автозагрузку:

systemctl start docker
systemctl enable docker
systemctl status docker

Установка Docker в CentOS 8

Поскольку CentOS 8 перешла на новую подсистему брандмауэра – nftables, а Docker поддерживает только iptables, то сеть внутри контейнеров работать не будет. Чтобы это исправить надо включить трафик masquerade с помощью firewalld:

firewall-cmd –zone=public –add-masquerade –permanent

Затем перезагрузите фаервол, чтобы правила активные обновились:

Установка 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 в CentOS 8

А также можно запустить Hello world контейнер:

docker run hello-world

Установка Docker в CentOS 8

Также можем посмотреть версию docker-compose:

Установка Docker в CentOS 8

Удаление Docker в CentOS

Удалить Docker CentOS можно просто удалив пакет, который вы ранее установили, для этого выполните:

dnf remove docker-ce

Установка Docker в CentOS 8

Чтобы удалить docker-compose достаточно удалить файл /usr/local/bin/docker-compose, эта утилита находится только там и её нет больше нигде в системе.

Выводы

В этой статье мы разобрали как установить docker CentOS 8 и решить проблему с сетью в контейнерах. Напишите в комментариях хотите ли вы продолжение этой темы в статьях о том, как пользоваться Docker и Docker compose для разворачивания своих приложений.

Установка Docker в CentOS 8

Установка Docker в CentOS 8

Установка Docker в CentOS 8

Установка Docker в CentOS 8

alt=”Creative Commons License” width=”” />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

4 комментария

не актуально .
]# uname -a
Linux localhost.localdomain 4.18.0-193.6.3.el8_2.x86_64 #1 SMP Wed Jun 10 11:09:32 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

[[email protected] load]# systemctl start docker
Failed to start docker.service: Unit docker.service not found.
[[email protected] load]# dnf install docker-ce
Last metadata expiration check: 0:01:04 ago on Mon 29 Jun 2020 04:41:01 PM +05.
Error:
Problem: package docker-ce-3:19.03.12-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
– cannot install the best candidate for the job
– package containerd.io-1.2.10-3.2.el7.x86_64 is filtered out by modular filtering
– package containerd.io-1.2.13-3.1.el7.x86_64 is filtered out by modular filtering
– package containerd.io-1.2.13-3.2.el7.x86_64 is filtered out by modular filtering
– package containerd.io-1.2.2-3.3.el7.x86_64 is filtered out by modular filtering
– package containerd.io-1.2.2-3.el7.x86_64 is filtered out by modular filtering
– package containerd.io-1.2.4-3.1.el7.x86_64 is filtered out by modular filtering
– package containerd.io-1.2.5-3.1.el7.x86_64 is filtered out by modular filtering
– package containerd.io-1.2.6-3.3.el7.x86_64 is filtered out by modular filtering
(try to add ‘–skip-broken’ to skip uninstallable packages or ‘–nobest’ to use not only best candidate packages)

Есть такой косяк, но поправимый.
Просмотри доступные версии, последние версии не устанавливаются на centos 8.
dnf list docker-ce –showduplicates | sort -r
Просто попробуй версию постарше, например:
dnf install -y docker-ce-18.06.3.ce-3.el7 containerd.io

Сюда нормально встает:
[[email protected]

]# uname -a
Linux centos8x 4.18.0-305.7.1.el8_4.x86_64 #1 SMP Tue Jun 29 21:55:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
(yum/dnf update)

после пункта
$ mv ./docker-compose /usr/local/bin/docker-compose
нужно сделать ссылку
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
ну либо добавить соответствующий путь в переменные окружения