Skip to content
Документация
Установка Docker на Linux

Установка 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

Установка 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 docker

4-> Проверяем успешность установки:

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 reload

firewalld (RHEL/Fedora):

sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
sudo firewall-cmd --reload

SELinux (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

Содержимое файла:

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

1-> Удаляем пакеты Docker:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

2-> Удаляем образы, контейнеры и тома:

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

3-> Удаляем источник репозитория и 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)