Главная >> Инструкции >> Установка 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 для разворачивания своих приложений.

Pеклама
Посмотреть детали

Если вы искали альтернативу почтовому сервису Gmail, который уважает вашу конфиденциальность, обратите внимание на ProtonMail. Ваши письма автоматически шифруются сквозным шифрованием, поэтому читать их можете только вы и получатель. ProtonMail не собирает ваши персональные данные и базируется в Швейцарии, где действуют одни из самых строгих законов о конфиденциальности. Посмотреть детали

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

    Ответить

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