Добрый день! Сегодня мы рассмотрим установку на CentOS8/RHEL8, установку такой системы автоматического развертывания как Docker Common Edition.
О том, что такое Docker вы можете прочитать тут.
О том, как установить CentOS8 читайте здесь.
Добавление репозитория
К сожалению несмотря на заявленную улучшенную поддержку контейнеров в базовом репозитории CentOS8/RHEL8 до сих пор не содержится Docker CE (Common Edition), поэтому нам будет необходимо добавить сторонний репозиторий.
В добавлении репозитория нам будет необходимо использовать пакетный менеджер dnf и его утилиту config-manager. Чтобы добавить Docker репозиторий в CentOS8, выполним:
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Проверим, что DNF добавил репозиторий Docker в список репозиториев CentOS, выполним следующую команду:
sudo dnf repolist -v
В списке появился репозиторий docker-ce-stable.
Установка Docker CE
Так, как мы уже с Вами добавили хранилище Docker-CE, то мы можем перейти непосредственно к установки пакетов. При помощи пакетного менеджера DNF проверим список пакетов Dockera доступных для установки в CentOS8/RHEL8, для этого в консоли наберем и выполним следующую команду:
dnf list docker-ce --showduplicates | sort -r
Попробуем установить наберем команду:
dnf install docker-ce
И перед нами появится такая вот замечательная ошибка. Чем она вызвана? Сама компания RedHat не дает установить на системы CentOS8/RHEL8 версии docker-ce в которых используется зависимость containerd.io>=1.2.2-3. По этой причине не работает простая установка.
Однако все же данная проблема решаема и если мы хотим обойти данную проблему и продолжить установку у нас есть три варианта:
- Установите конкретную версию, для
docker-ce
которой требуется устанавливаемая версияcontainerd.io
пакета; - Принудительная установка с предоставлением
--nobest
опции - Установить последние доступные
containerd.io
вручную;
Для начала рассмотрим установку конкретной версии docker-ce.
Установка конкретной версии docker-ce
Для установки конкретной версии, нам необходимо предоставить полное имя пакета, например:
sudo dnf install docker-ce-3:18.09.1-3.el7
На момент написания статьи вы можете установить:
- docker-ce-3:18.09.1-3.el7
- docker-ce-18.06.3.ce-3.el7
- docker-ce-17.12.1.ce-1.el7.centos
Как видите нам остается только лишь принять установку и далее она пройдет без проблем.
Далее рассмотрим пример установки с опцией —nobest.
Принудительная установка docker-ce с опцией —nobest
Обычно при установке пакета наилучший доступный кандидат выбирается из репозитория. В этом случае, например, docker-ce
попытка установки последней версии (и сбой). Используя эту --nobest
опцию, мы можем изменить это поведение, чтобы первая версия docker-ce
с удовлетворительными зависимостями была выбрана как «резервная», в этом случае 18.06.3.ce-3.el7.
sudo dnf install --nobest docker-ce
Как видите установка так же будет запущена без проблем и нам останется только принять установку в CentOS нажав y.
Теперь давайте рассмотрим последний вариант, установка containerd.io вручную.
Установите последний доступный пакет containerd.io вручную
Итак, как же установить последний доступный пакет containerd.io, а все очень просто, нам необходимо скачать пакет containerd.io вручную из репозиториев dockera. Для этого выполним команду:
sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2. 10-3.2.el7.x86_64.rpm
Будет произведена установка последний на текущий момент версии, и замене стандартный пакет версии 1.0.0-55. По окончании установки containerd.io на CentOS8, запустим команду установки контейнера dockera:
И на CentOS8 без проблем начнется установка docker-ce последней актуальной версии.
Теперь нам осталось лишь запустить демон dockera и добавить его в автозагрузку, для этого мы используем команду:
sudo systemctl enable --now docker
После чего проверим, что docker-ce успешно запустился на CentOS8.
На этом установка docker-ce успешно завершена и вы можете работать с ним на CentOS8, далее мы рассмотрим как установить docker compose.