Установка Docker на серверы Linux
Введение
Docker Engine — это платформа с открытым исходным кодом (open-source) для создания и управления контейнерами. Она позволяет упаковывать приложения со всеми зависимостями в легковесные, портативные контейнеры, обеспечивая одинаковую работу на любом сервере.
В данном руководстве мы установим Docker Engine через официальный репозиторий Docker на операционные системы Ubuntu, Debian, Fedora и RHEL. Также рассмотрим настройку после установки, обновление и полное удаление.
Важное замечание о файрволе
Когда Docker открывает порты контейнеров, эти порты обходят правила ufw или firewalld. То есть, даже если вы укажете ufw deny 8080, порт 8080, открытый через Docker, останется доступным извне.
Docker совместим только с iptables-nft и iptables-legacy. Правила файрвола, созданные с помощью nft, не будут работать в системе с установленным Docker.
Подробнее: Docker and ufw (opens in a new tab)
Установка Docker Engine
- Ubuntu
- Debian
- Fedora
- RHEL
Установка Docker Engine на Ubuntu
Требования к ОС
Для установки Docker Engine необходима 64-битная версия одного из следующих выпусков Ubuntu:
- Ubuntu Questing 25.10
- Ubuntu Noble 24.04 (LTS)
- Ubuntu Jammy 22.04 (LTS)
Поддерживаемые архитектуры: x86_64 (amd64), armhf, arm64, s390x, ppc64le (ppc64el)
На дистрибутивах на базе Ubuntu, таких как Linux Mint, Docker официально не поддерживается (может работать, но не гарантируется).
Удаление старых версий
Перед установкой официальной версии Docker необходимо удалить неофициальные пакеты Docker, которые могут присутствовать в системе — они могут вызывать конфликты:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)apt может сообщить, что ни один из этих пакетов не установлен — это нормально.
Образы, контейнеры и тома в каталоге /var/lib/docker/ не удаляются автоматически при удалении Docker.
Установка через APT-репозиторий
1-> Добавляем официальный GPG-ключ Docker и APT-репозиторий:
# Добавление официального GPG-ключа Docker
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Добавление репозитория Docker в список источников APT
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt updateЧто делают эти команды?
- GPG-ключ — подтверждает, что загружаемые пакеты действительно получены от Docker
- APT source — указывает пакетному менеджеру
aptадрес официального репозитория Docker ${UBUNTU_CODENAME:-$VERSION_CODENAME}— автоматически определяет кодовое имя вашей системы (например,noble,jammy)
2-> Устанавливаем Docker Engine и его компоненты:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -yЗдесь:
docker-ce— Docker Engine (основной движок)docker-ce-cli— Docker CLI (интерфейс командной строки)containerd.io— среда выполнения контейнеровdocker-buildx-plugin— расширенные возможности сборкиdocker-compose-plugin— командаdocker compose(для многоконтейнерных приложений)
3-> Запускаем Docker и проверяем его состояние:
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker4-> Проверяем успешность установки:
sudo docker run hello-worldЭта команда загружает тестовый образ и запускает его в контейнере. Если на экране появится сообщение "Hello from Docker!" — все работает корректно.
Настройка после установки
После установки Docker необходимо выполнить несколько важных настроек.
Использование Docker без root
По умолчанию Docker работает только от имени root или с использованием sudo. Чтобы выполнять команды Docker от обычного пользователя, добавьте его в группу docker:
sudo usermod -aG docker $USERДля вступления изменений в силу необходимо открыть новую терминальную сессию или заново войти в систему. Для немедленного применения выполните:
newgrp dockerЗатем проверьте — должно работать без sudo:
docker run hello-worldПроверка установки Docker
Запустите образ платформы DevOps Journey, чтобы убедиться в корректной работе Docker:
docker run -d -p 3000:3000 --name devops-journey --restart=always devopsjourneyuz/devops-journey-uz:latestОткройте в браузере http://server_ip:3000 — должна отобразиться платформа DevOps Journey.
Если страница не открывается, проверьте файрвол:
ufw (Ubuntu/Debian):
sudo ufw allow 3000
sudo ufw reloadfirewalld (RHEL/Fedora):
sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
sudo firewall-cmd --reloadSELinux (RHEL/Fedora) — если включен режим enforcing:
sudo getenforce
# Временное отключение (для тестирования):
sudo setenforce 0Настройка прокси для Docker
Этот шаг необходим только в том случае, если ваш сервер выходит в интернет через прокси.
Если в вашей организации серверы работают через прокси, Docker также необходимо передать настройки прокси:
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.confСодержимое файла:
[Service]
Environment="HTTP_PROXY=http://myproxy:port"
Environment="HTTPS_PROXY=http://myproxy:port"
Environment="NO_PROXY=localhost,127.0.0.1"Применяем:
sudo systemctl daemon-reload
sudo systemctl restart dockerПроверка:
docker info | grep -i proxyОбновление Docker Engine
Через APT (Ubuntu/Debian)
Если Docker был установлен через APT-репозиторий, обновление выполняется просто:
sudo apt update
sudo apt upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginЧерез DNF (Fedora/RHEL)
sudo dnf upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginС помощью convenience-скрипта
Docker также предоставляет скрипт для быстрой установки. Он рекомендуется только для тестовых и dev-окружений:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.shНе используйте этот скрипт в production-окружении! Он не позволяет настраивать параметры и может привести к неожиданным обновлениям мажорных версий.
Чтобы предварительно просмотреть, что делает скрипт:
sudo sh ./get-docker.sh --dry-runДля установки pre-release (бета) версий:
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.shУдаление Docker Engine
- Ubuntu/Debian
- Fedora/RHEL
1-> Удаляем пакеты Docker:
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras2-> Удаляем образы, контейнеры и тома:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd3-> Удаляем источник репозитория и GPG-ключ:
sudo rm /etc/apt/sources.list.d/docker.sources
sudo rm /etc/apt/keyrings/docker.ascДополнительно
Использованные источники: docs.docker.com (opens in a new tab)
Дата: 2023.11.19(19 ноября 2023 г.)
Последнее обновление: 2026.02.12(12 февраля 2026 г.)
Автор: Otabek Ismoilov
| Telegram (opens in a new tab) | GitHub (opens in a new tab) | LinkedIn (opens in a new tab) |
|---|