Как установить 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