Как установить Docker и Docker Compose на CentOS 8 / RHEL 8

Как установить Docker и Docker Compose на CentOS 8 / RHEL 8

 

Могу ли я установить Docker на CentOS 8 / RHEL 8 Linux ?, Как установить Docker Compose на RHEL / CentOS 8 Linux ?, Установить Docker и Docker Compose на CentOS 8 ?. Это руководство проведет вас через установку Docker и Docker Compose в RHEL 8 / CentOS 8. Docker официально не поддерживается в RHEL 8, поскольку он был заменен инструментами Red Hat — buildah и podman. Мы расскажем о билдах и подманах в отдельной статье.

Но что, если вы используете Docker каждый день и не можете сразу переключиться на buildah и podman? Не волнуйтесь, так как есть способ установить Docker и Docker Compose на RHEL 8 / CentOS 8. Docker — это инструмент, который позволяет вам для создания, развертывания и запуска ваших приложений в контейнерах. Контейнеры позволяют разработчику упаковать приложение с его зависимостями и отправить его как единый пакет. Контейнеры часто используются в средах микросервисов.

Компоненты Docker / Терминология

Существует ряд специфических для Docker жаргонов, которые нам необходимо прояснить, прежде чем углубляться в примеры установки и использования. Ниже приведены наиболее часто используемые термины в экосистеме Docker.

  • Docker daemon: это также называется Docker Engine, это фоновый процесс, который запускается в хост-системе, отвечающей за создание и запуск контейнеров.
  • Docker Client: это инструмент командной строки, используемый пользователем для взаимодействия с демоном Docker..
  • Docker Image: это неизменяемый файл, который по сути является моментальным снимком контейнера. Образ докера имеет файловую систему и зависимости приложений, необходимые для запуска приложений.
  • Docker container: это работающий экземпляр образа докера с приложением и его зависимостями. Каждый контейнер имеет уникальный идентификатор процесса и изолирован от других контейнеров. Единственное, что разделяют контейнеры, — это ядро.
  • Docker registry: это приложение, отвечающее за управление хранением и доставкой образов контейнеров Docker. Он может быть частным или публичным.

Установка Docker CE на CentOS 8 / RHEL 8

До сих пор мы рассмотрели введение в докеры и терминологию. Мы должны быть готовы к установке Docker CE на RHEL 8 / CentOS 8. Начнем с установки Docker, а затем Docker Compose.

Доступны две версии Docker.

  • Community Edition (CE): идеально подходит для индивидуальных разработчиков и небольших команд, которые хотят начать работу с Docker и экспериментировать с приложениями на основе контейнеров..
  • Enterprise Edition (EE): предназначен для корпоративных разработчиков и ИТ-групп, которые создают, поставляют и запускают критически важные для бизнеса приложения в масштабах производства.

Для использования Docker Enterprise Edition требуется активная лицензия. В этом руководстве мы установим Docker CE на RHEL 8. Давайте добавим репозиторий Docker, прежде чем мы сможем его установить.

sudo curl  https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

Эта команда загрузит файл репозитория Docker к /etc/yum.repos.d/docker-ce.repo. Обновим кеш индекса RPM.

$ sudo yum makecache 
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Docker CE Stable - x86_64                                                                                             6.1 kB/s |  14 kB     00:02    
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)                                                          1.8 kB/s | 4.1 kB     00:02    
Red Hat Enterprise Linux 8 for x86_64 - BaseOS Beta (RPMs)                                                             3.5 kB/s | 4.1 kB     00:01    
Metadata cache created.

Наконец, установите Docker CE, выполнив следующую команду в своем терминале.

sudo dnf -y  install docker-ce --nobest

Запустите и включите Docker Service для запуска при загрузке.

sudo systemctl enable --now docker

Статус службы докеров должен указывать на работу.

$ systemctl status  docker
 ● docker.service - Docker Application Container Engine
    Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
    Active: active (running) since Sun 2019-03-10 09:52:54 EAT; 29s ago
      Docs: https://docs.docker.com
  Main PID: 2875 (dockerd)
     Tasks: 21 (limit: 11510)
    Memory: 48.3M
    CGroup: /system.slice/docker.service
            ├─2875 /usr/bin/dockerd
            └─2882 docker-containerd --config /var/run/docker/containerd/containerd.toml
 Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.261477553+03:00" level=info msg="ClientConn switching balancer to \"pick_first\"">
 Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.261506651+03:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc>
 Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.261707466+03:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc>
 Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.261722124+03:00" level=info msg="Loading containers: start."
 Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.637205789+03:00" level=info msg="Default bridge (docker0) is assigned with an IP >
 Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.835734889+03:00" level=info msg="Loading containers: done."
 Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.857760401+03:00" level=info msg="Docker daemon" commit=d7080c1 graphdriver(s)=ove>
 Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.858095579+03:00" level=info msg="Daemon has completed initialization"
 Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.915887172+03:00" level=info msg="API listen on /var/run/docker.sock"
 Mar 10 09:52:54 rhel8.local systemd[1]: Started Docker Application Container Engine.

docker group Создается, но ни один пользователь не добавляется в группу. Добавьте своего пользователя в эту группу, чтобы запускать команды докеров без sudo.

$ sudo usermod -aG docker $USER
$ id $USER
uid=1000(jmutai) gid=1000(jmutai) groups=1000(jmutai),10(wheel),984(docker)

Выйдите из системы и войдите снова, чтобы использовать Docker без sudo. Установленную версию Docker можно проверить с помощью:

$ newgrp docker
$ docker version
 Client:
  Version:           18.06.3-ce
  API version:       1.38
  Go version:        go1.10.3
  Git commit:        d7080c1
  Built:             Wed Feb 20 02:26:51 2019
  OS/Arch:           linux/amd64
  Experimental:      false

 Server:
  Engine:
   Version:          18.06.3-ce
   API version:      1.38 (minimum version 1.12)
   Go version:       go1.10.3
   Git commit:       d7080c1
   Built:            Wed Feb 20 02:28:17 2019
   OS/Arch:          linux/amd64
   Experimental:     false

Образ докеры для теста Pull

Последний шаг — протестировать вашу установку, загрузив тестовый контейнер докера.

$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
8e402f1a9c57: Pull complete 
Digest: sha256:644fcb1a676b5165371437feaa922943aaf7afcfa8bfee4472f6860aad1ef2a0
Status: Downloaded newer image for alpine:latest

Список загруженных изображений

$ docker images
 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
 alpine              latest              5cb3aa00f899        2 days ago          5.53MB
 hello-world         latest              fce289e99eb9        2 months ago        1.84kB

Убедитесь, что Docker CE работает правильно, запустив контейнер alpine из загруженного образа.

$ docker run -it --rm alpine /bin/sh
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
v3.9.2-1-g592d872fb8 [http://dl-cdn.alpinelinux.org/alpine/v3.9/main]
v3.9.2-2-ge7dc3349a9 [http://dl-cdn.alpinelinux.org/alpine/v3.9/community]
OK: 9754 distinct packages available
/ # exit

Установка Docker Compose на RHEL 8 / CentOS 8

У нас установлен и запущен Docker, давайте теперь переключимся на Docker Compose. Docker Compose — это инструмент, используемый для определения и запуска многоконтейнерных приложений Docker.

Службы приложений настраиваются с помощью файла Compose. В отличие от выполнения команд docker, для создания и запуска всех служб из вашей конфигурации требуется всего лишь одна команда. Docker Compose — отличный инструмент для разработки, тестирования и промежуточных сред, а также рабочих процессов CI.

Установка Docker Compose на RHEL 8 / CentOS 8

Следуйте нашему отдельному руководству по установке последней версии Docker Compose в Linux.

Установка Docker Compose в Linux

Чтобы сохранить краткость этого руководства, мы не будем углубляться в использование Docker compose. Я рекомендую вам пройти через официальный Докер документацию и Docker Compose документацию , чтобы узнать больше.

Установка Docker UI — необязательно

Если вам нужен пользовательский интерфейс управления Docker, который позволяет легко управлять различными хостами и контейнерами Docker, попробуйте Portainer. Легко установить и использовать.

Как установить Portainer Docker UI Manager

 

Один комментарий

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

два − 1 =