Главная >> Инструкции >> Установка Docker в CentOS 8

Установка 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 выполняется командой:

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 для разворачивания своих приложений.

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

5 комментариев к “Установка Docker в CentOS 8”

  1. не актуально !!!
    ]# 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

    [root@localhost load]# systemctl start docker
    Failed to start docker.service: Unit docker.service not found.
    [root@localhost 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

      Ответить
  2. Сюда нормально встает:
    [root@centos8x ~]# 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)

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

    Ответить
  4. Помимо docker-ce установил сразу и другие компоненты, которые в гайде докера были указаны и все работает как надо. Вот полная строка установки:
    dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin

    Ответить

Оставьте комментарий