Docker недоступен в репозиториях CentOS.
Это пошаговое руководство, которое поможет вам установить Docker на CentOS Linux.
Установка Docker на Ubuntu проста, потому что Ubuntu предоставляет Docker в своих репозиториях. Однако Docker недоступен в репозиториях CentOS по умолчанию.
Не волнуйтесь, есть три способа установить docker в систему CentOS Linux.
- Использование репозитория docker
- Загрузка RPM
- Использование вспомогательных скриптов
Здесь я расскажу вам о процессе установки Docker CE с использованием репозитория Docker RPM.
Docker CE расшифровывается как Docker Community Edition. Это бесплатная версия Docker с открытым исходным кодом. Существует Docker EE (Enterprise Edition) с платной поддержкой. Большая часть мира использует Docker CE, и его часто считают синонимом Docker.
Установка Docker на CentOS
Прежде чем двигаться дальше, убедитесь, что ваша система обновлена. Вы можете обновить CentOS с помощью:
sudo dnf update
Добавьте официальный репозиторий
Добавьте официальный репозиторий docker, используя следующую команду
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Вам также следует обновить кэш пакета после добавления нового репозитория:
sudo dnf update
Установите Docker CE
Проблема с использованием пользовательского репозитория заключается в том, что при попытке установки последней версии docker-ce может возникнуть проблема с зависимостями.
Например, когда я проверяю доступные версии docker-ce с помощью этой команды:
dnf list docker-ce --showduplicates | sort -r
Я получил docker-ce-3: 19.03.9-3.el7 в качестве последней версии. Но проблема при установке последней версии заключается в том, что она зависит от containerd.io version >= 1.2.2-3. Теперь эта версия containerd.io недоступна в CentOS 8.
Чтобы избежать этого цикла зависимостей и бороться с ними вручную, вы можете использовать --nobest
опцию команды dnf.
Он проверит последнюю версию docker-ce, но когда обнаружит проблему с зависимостями, он проверяет следующую доступную версию docker-ce. По сути, это помогает вам автоматически установить наиболее подходящую версию пакета с соблюдением всех зависимостей.
Чтобы установить docker в CentOS без головной боли, попробуйте эту команду и увидите, как волшебство развернется на экране вашего терминала:
sudo dnf install docker-ce --nobest
Вам будет предложено импортировать ключ GPG, убедитесь, что ключ совпадает с 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
, прежде чем вводить «y».
containerd.io это демон для управления контейнерами. Docker — это всего лишь одна из форм контейнеров Linux. Чтобы сделать различные типы образов контейнеров переносимыми,
Open Container Initiative определила некоторые стандарты. containerd используется для управления образами контейнеров, соответствующими стандарту OCI.
Настройка docker на CentOS
Хорошо! Вы установили docker, но он еще не готов к использованию. Вам придется выполнить некоторые базовые настройки, прежде чем его можно будет использовать без проблем.
Запустите docker без sudo
Вы можете запустить docker без каких-либо прав sudo, добавив своего пользователя в docker
группу.
Группа docker уже должна существовать. Проверьте это с помощью следующей команды:
awk -F: '/docker/ {print $1}' /etc/group
Если это ничего не дает, создайте группу docker с помощью команды groupadd следующим образом:
sudo groupadd docker
Теперь добавьте вашего пользователя в docker
группу с помощью команды usermod:
$ sudo usermod -aG docker user_name
Измените имя пользователя в приведенной выше команде на предполагаемое имя пользователя.
Теперь выйдите из системы и войдите снова, чтобы групповое изменение вступило в силу.
Запустите docker daemon
Docker установлен. Ваш пользователь добавлен в docker
группу. Но этого пока недостаточно для запуска docker.
Прежде чем вы сможете запустить любой контейнер, необходимо запустить демон docker. Демон docker — это программа, которая управляет всеми контейнерами, томами, сетями и т.д. Другими словами, демон выполняет всю тяжелую работу.
Запустите демон docker с помощью:
sudo systemctl start docker
Вы также можете включить автоматический запуск docker daemon во время загрузки:
sudo systemctl enable --now docker
Проверьте установку docker, запустив образец контейнера
Все готово. Пришло время проверить, прошла установка успешно или нет, запустив контейнер docker.
Для проверки вы можете запустить стандартный контейнер docker hello-world. Это крошечный образ docker, который идеально подходит для быстрого тестирования установки docker.
docker run hello-world
Если все в порядке, вы должны увидеть вывод, подобный этому:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
Вот что команда делает за капотом:
- Клиент docker, то есть инструмент командной строки, который вы только что использовали, связался с демоном docker.
- Демон искал образ hello-world docker в локальной системе. Поскольку он не находит образ, он извлекает его из Docker Hub.
- Движок создает контейнер со всеми опциями, которые вы указали в настройках командной строки клиента.
Этот образ hello-world используется только для тестирования установки docker. Если вам нужен более полезный контейнер, вы можете попробовать запустить Nginx server в подобном контейнере:
docker run --rm --name nginx -p 56788:80 -d nginx:latest
После завершения выполнения команды откройте браузер и перейдите по ссылке http://your_ip_address:56788. Надеюсь, вы знаете, как узнать свой IP-адрес в Linux.
Вы должны увидеть запущенный сервер nginx. Теперь вы можете остановить контейнер.
docker stop nginx
Я надеюсь, что это руководство помогло вам в установке docker на CentOS. Подпишитесь на дополнительные руководства по Docker и советы по DevOps.