Docker остаётся стандартом де-факто для контейнеризации и разработки. Однако установка отличается в зависимости от семейства Linux-дистрибутивов. В этой инструкции разберём два основных сценария:
🟦 Debian (Ubuntu, Linux Mint, Debian)
🟥 RedHat (RHEL, Rocky, AlmaLinux, CentOS Stream, Fedora)
Также настроим docker-compose, проверим работу и дадим советы по оптимизации.
Установка Docker на Debian/Ubuntu
Шаг 1. Удаляем старые версии
sudo apt remove docker docker-engine docker.io containerd runcШаг 2. Устанавливаем зависимости
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-releaseШаг 3. Добавляем официальный репозиторий Docker
// Добавляем GPG-ключ
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
// Добавляем репозиторий
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullШаг 4. Устанавливаем Docker Engine, CLI и containerd
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginШаг 5. Добавляем пользователя в группу docker
Чтобы не писать sudo каждый раз:
sudo usermod -aG docker $USER
newgrp dockerШаг 6. Проверяем работу
docker run hello-worldУстановка Docker на RedHat/Rocky/CentOS/Fedora
Шаг 1. Удаляем старые версии
sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest \
docker-latest-logrotate docker-logrotate docker-engineШаг 2. Устанавливаем необходимые пакеты
sudo dnf -y install dnf-plugins-coreШаг 3. Добавляем репозиторий Docker
Для RHEL, Rocky, CentOS Stream:
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoДля Fedora:
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repoШаг 4. Устанавливаем Docker Engine + CLI
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginШаг 5. Включаем и запускаем сервис
sudo systemctl enable --now dockerШаг 6. Проверяем
docker run hello-worldУстановка Docker Compose (если нужен отдельный бинарник)
Хотя новые версии Docker используют Compose V2 как плагин (docker compose), иногда требуется старая команда docker-compose.
Узнаём последнюю версию:
VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)Скачиваем бинарник
sudo curl -L "https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composeПроверяем:
docker-compose --versionТестовый docker-compose.yml
Для проверки создадим простой файл:
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
Запускаем:
docker compose up -d
Открываем в браузере:
http://localhost:8080Должна появиться тестовая страница nginx c сообщением "Welcome to nginx!"
5. Частые ошибки и решения
Нет доступа к Docker без sudo
sudo usermod -aG docker $USER
newgrp dockerОшибка "Cannot connect to the Docker daemon"
Проверьте сервис:
sudo systemctl status docker
sudo systemctl start dockerSELinux блокирует контейнеры
Для Rocky / RHEL:
sudo setenforce 0или корректная политика:
sudo dnf install container-selinux