Настройка и установка Docker на CentOS может пригодиться, когда вы хотите передать свой серверный проект другому пользователю. Docker поможет вам сделать это без лишних сложностей.
Docker – это приложение для контейнеризации компонентов программ. Необходимые библиотеки, настройки, коды и среды Docker упаковывает в контейнеры, которые потом можно переносить на другие виртуальные машины.
Компания Docker разделила движок на два продукта: Docker CE (Docker Community Edition) и Docker Enterprise. Docker Community Edition — это бесплатное ПО. Docker Enterprise — это платная версия. Она даёт дополнительные возможности управления системами.
Установить и развернуть Docker CE можно на различные операционные системы. Мы рассмотрим установку на сервер CentOS 7 и CentOS 8/Stream 8.
Если ранее у вас были загружены другие версии Docker, то перед установкой Docker CE удалите все предыдущие пакеты с помощью команды:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
Как установить Docker на CentOS 7
Инструкция ниже поможет вам установить Docker CE на CentOS 7.
-
1
Обновите локальную базу пакетов:
sudo yum check-update
-
2
Подключите репозиторий Docker CE к вашему Yum:
yum install -y yum-utils device-mapper-persistent-data lvm2
-
3
Обратитесь к официальному репозиторию Docker и загрузите стабильную версию программы:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
4
Запустите загрузку Docker:
yum install -y docker-ce
-
5
Выведите на экран список сетевых интерфейсов:
ip a
Вывод будет иметь следующий вид:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc fq_codel state UP group default qlen 1000 link/ether fa:16:3e:1b:46:51 brd ff:ff:ff:ff:ff:ff altname enp0s3 inet 192.168.0.175/24 metric 100 brd 192.168.0.255 scope global dynamic ens3 valid_lft 77866sec preferred_lft 77866sec inet6 fe80::f816:3eff:fe1b:4651/64 scope link valid_lft forever preferred_lft forever 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:0e:8c:cd:2a brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever
В списке сетевых интерфейсов ens3 является основным и имеет MTU (максимальный размер блока передаваемых данных) 1450. Однако Docker создал интерфейс docker0 с MTU 1500. Это может стать причиной задержек при подключении интернет-сервисам. Чтобы это исправить, необходимо изменить конфигурационный файл Docker.
-
6
Откройте конфигурационный файл Docker:
sudo nano /lib/systemd/system/docker.service
-
7
Найдите строку:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Замените ее на следующее значение:
ExecStart=/usr/bin/dockerd --mtu 1450 -H fd:// --containerd=/run/containerd/containerd.sock
Затем сохраните изменения и закройте файл.
-
8
Если вы используете Docker Compose, перейдите в директорию вашего проекта и откройте файл docker-compose.yml. Приведите его к следующему виду:
networks: default: driver: bridge driver_opts: com.docker.network.driver.mtu: 1450
Затем сохраните изменения и закройте файл.
-
9
Перезапустите Docker. Для этого поочередно выполните команды:
sudo systemctl daemon-reload sudo service docker restart
-
10
Для запуска контейнера требуются права администратора. Eсли вы будете использовать Docker не от имени пользователя root, добавьте пользователя в группу Docker:
sudo usermod -aG docker user
Вместо user укажите имя пользователя.
Теперь от имени данного пользователя можно выполнить команды Docker без указания sudo.
-
11
Убедитесь, что программа работает:
sudo docker run hello-world
-
12
Если все работает правильно, в терминале вы увидите письмо:
Docker install CentOS
Готово, вы установили Docker на CentOS 7.
Как установить Docker на CentOS 8/Stream 8
В CentOS 8 уже встроены инструменты для создания и управления образами контейнеров: buildah и podman. Если вы не хотите использовать эти инструменты для контейнеризации, то руководство ниже позволит вам пошагово установить Docker на CentOS 8 и CentOS Stream 8.
-
1
Чтобы избежать несовместимости при установке Docker CE, заранее установите пакет containerd.io вручную. Введите команду:
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
- 2 Подтвердите установку с помощью Y. Последняя версия containerd.io установлена.
-
3
Установите Docker CE:
sudo dnf install docker-ce -y
-
4
Выведите на экран список сетевых интерфейсов:
ip a
Вывод будет иметь следующий вид:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc fq_codel state UP group default qlen 1000 link/ether fa:16:3e:1b:46:51 brd ff:ff:ff:ff:ff:ff altname enp0s3 inet 192.168.0.175/24 metric 100 brd 192.168.0.255 scope global dynamic ens3 valid_lft 77866sec preferred_lft 77866sec inet6 fe80::f816:3eff:fe1b:4651/64 scope link valid_lft forever preferred_lft forever 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:0e:8c:cd:2a brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever
В списке сетевых интерфейсов ens3 является основным и имеет MTU (максимальный размер блока передаваемых данных) 1450. Однако Docker создал интерфейс docker0 с MTU 1500. Это может стать причиной задержек при подключении интернет-сервисам. Чтобы это исправить, необходимо изменить конфигурационный файл Docker.
-
5
Откройте конфигурационный файл Docker:
sudo nano /lib/systemd/system/docker.service
-
6
Найдите строку:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Замените ее на следующее значение:
ExecStart=/usr/bin/dockerd --mtu 1450 -H fd:// --containerd=/run/containerd/containerd.sock
Затем сохраните изменения и закройте файл.
-
7
Перезапустите Docker. Для этого поочередно выполните команды:
sudo systemctl daemon-reload sudo service docker restart
Готово, вы установили Docker CE на CentOS 8.
Для упрощения работы с многоконтейнерными приложениями установите Docker Compose.
Команды Docker
Чтобы увидеть все доступные команды, введите:
docker
Вы получите полный список доступных команд:
Как настроить Docker на сервере с СentOS
Как загрузить и запустить образ в Docker
Контейнеры Docker запускаются из образов. Образы находятся в каталоге Docker Hub. Разместить свой образ на Docker Hub может любой пользователь.
― Для загрузки образа используйте команду:
docker pull <имя>
― Для запуска образа введите команду:
docker run <имя>
― Посмотреть все загруженные образы можно с помощью опции images:
docker images
Как работать с контейнерами в Docker
― Чтобы создать контейнер на основе определённого образа, используйте команду:
docker run --name <имя контейнера> -d <образ>
― Посмотреть запущенные контейнеры можно с помощью:
docker ps
― Для запуска контейнера в фоновом режиме используйте команду:
docker container start <имя_или_id>
― Чтобы зайти в контейнер, который работает в фоновом режиме, введите:
sudo docker exec -i -t <имя_или_id> /bin/bash
― Для остановки созданного контейнера используйте:
docker container stop <имя_или_id>
― Чтобы удалить контейнер, введите:
docker rm -f <имя_или_id>
В этой статье мы рассмотрели установку Docker CE на CentOS 7, 8 и познакомились с базовыми возможностями этого инструмента. Теперь вы можете создавать собственные контейнеры и передавать их другим пользователям.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊