Введение
Docker — это платформа для упаковки, доставки и запуска приложений в изолированных контейнерах. Установка Docker на Debian (11 Bullseye или 12 Bookworm) позволяет использовать современные инструменты контейнеризации на сервере или рабочей станции. После Completing этого гайда вы сможете запускать контейнеры, управлять образами и использовать весь экосистему Docker.
Требования
Перед началом убедитесь, что:
- У вас установлена 64-битная версия Debian 11 или 12.
- Есть доступ к репозиториям Debian и интернету.
- У вас есть права суперпользователя (sudo) или доступ к root-аккаунту.
- Система обновлена:
sudo apt update && sudo apt upgrade -y(рекомендуется).
Шаг 1: Удалите старые версии Docker
Если на системе уже установлены пакеты docker, docker.io или containerd, удалите их, чтобы избежать конфликтов с официальным репозиторием Docker:
sudo apt remove -y docker docker-engine docker.io containerd runc
⚠️ Важно: Эта команда удалит только пакеты, но не данные Docker (образы, контейнеры). Если хотите полностью сбросить, удалите также
/var/lib/docker.
Шаг 2: Установите зависимости
Установите необходимые пакеты для работы с репозиториями и HTTPS:
sudo apt update
sudo apt install -y ca-certificates curl lsb-release
ca-certificates— обеспечивает проверку SSL-сертификатов.curl— для загрузки GPG-ключа.lsb-release— определяет кодовое имя дистрибутива (например,bullseyeилиbookworm).
Шаг 3: Добавьте GPG-ключ Docker
Добавьте официальный GPG-ключ Docker для проверки подлинности пакетов:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Ключ сохранится в /usr/share/keyrings/docker-archive-keyring.gpg и будет использоваться при установке пакетов.
Шаг 4: Добавьте репозиторий Docker
Добавьте стабильный репозиторий Docker в APT:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Эта команда автоматически определит архитектуру системы (amd64, arm64 и т.д.) и кодовое имя Debian, создав файл /etc/apt/sources.list.d/docker.list.
Шаг 5: Установите Docker Engine
Обновите кэш APT и установите Docker Engine вместе с рекомендованными компонентами:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker-ce— сам движок Docker (Community Edition).docker-ce-cli— клиент командной строки.containerd.io— управление контейнерами.docker-buildx-plugin— расширенная сборка образов.docker-compose-plugin— оркестрация многоконтейнерных приложений (вместо старогоdocker-compose).
Шаг 6: Запустите и включите автозапуск
Запустите службу Docker и настройте её автоматический запуск при загрузке системы:
sudo systemctl start docker
sudo systemctl enable docker
Проверьте статус службы:
sudo systemctl status docker
Вы должны увидеть active (running) и enabled.
Шаг 7: Проверьте установку
Запустите тестовый контейнер hello-world, чтобы убедиться, что Docker работает корректно:
sudo docker run hello-world
Если контейнер запустится, вы увидите приветственное сообщение. Это означает, что установка прошла успешно.
Проверка результата
Помимо тестового контейнера, выполните дополнительные команды для полной проверки:
- Версия Docker:
docker version
Вывод должен показать версию клиента и сервера. - Информация о конфигурации:
docker info
Здесь отображаются детали: количество контейнеров, образов, драйверы хранения, ядро и т.д. - Список контейнеров (должен быть пустым):
docker ps -a
Если все команды выполняются без ошибок, Docker полностью готов к использованию.
Возможные проблемы
Ошибка: "Cannot connect to the Docker daemon"
Причина: Служба Docker не запущена.
Решение: Запустите её вручную:
sudo systemctl start docker
Если служба падает при запуске, проверьте логи:
sudo journalctl -u docker.service -n 50
Ошибка: "Permission denied" при запуске docker без sudo
Причина: Текущий пользователь не в группе docker.
Решение: Добавьте пользователя в группу:
sudo usermod -aG docker $USER
После этого перезайдите в систему или выполните newgrp docker для применения прав в текущей сессии.
Ошибка: "The repository … does not have a Release file"
Причина: Неверное кодовое имя дистрибутива в репозитории (например, если используется тестовая версия Debian).
Решение: Убедитесь, что вы используете стабильный Release (Bullseye/Bookworm). Проверьте /etc/apt/sources.list.d/docker.list. Если нужно, укажите кодовое имя вручную, заменив $(lsb_release -cs) на bullseye или bookworm.
Ошибка: "docker: command not found"
Причина: Путь к исполняемому файлу Docker не добавлен в переменную PATH.
Решение: Перезайдите в систему или выполните:
source ~/.profile
Если проблема остаётся, проверьте, что /usr/bin присутствует в PATH (echo $PATH).