Установка Docker и Docker Compose на Debian 11

Кратко
В этой инструкции описаны шаги по установке Docker Engine (CE) и Docker Compose на Debian 11: добавление репозитория Docker, установка зависимостей, запуск и базовая проверка. Подходит для локальной разработки и простых серверных развёртываний. В конце — памятка команд, чеклисты для ролей и раздел с типичными проблемами.
Важно: команды в инструкциях выполняются от имени root или через sudo. Убедитесь, что у вас есть доступ администратора.
Зачем это нужно
Docker — платформа для создания, доставки и запуска приложений в контейнерах. Контейнеры отделяют приложение от инфраструктуры, что упрощает тестирование, деплой и масштабирование. Docker Compose помогает запускать и управлять многоконтейнерными приложениями через YAML-файл.
Требования
- Сервер или виртуальная машина с Debian 11.
- Настроен root-доступ или пользователь с sudo.
- Рабочее подключение к интернету для загрузки пакетов и образов.
Обновление списка пакетов
Сначала обновите кеш пакетов:
apt-get update -yЗатем установите зависимости, которые понадобятся при добавлении репозитория Docker:
apt-get install apt-transport-https software-properties-common ca-certificates curl gnupg lsb-release -yУстановка Docker Engine (CE)
Docker CE по умолчанию может отсутствовать в официальном репозитории Debian 11, поэтому добавим официальный репозиторий Docker.
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"После добавления репозитория обновите список пакетов и установите Docker:
apt-get update -y
apt-get install docker-ce docker-ce-cli -yПроверьте версию Docker:
docker versionПример ожидаемого вывода (вариант для справки):
Client: Docker Engine - Community
Version: 20.10.8
API version: 1.41
Go version: go1.16.6
Git commit: 3967b7d
Built: Fri Jul 30 19:54:22 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.8
API version: 1.41 (minimum version 1.12)
Go version: go1.16.6
Git commit: 75249d8
Built: Fri Jul 30 19:52:31 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.9
GitCommit: e25210fe30a0a703442421b0f60afac609f950a3
runc:
Version: 1.0.1
GitCommit: v1.0.1-0-g4144b63
docker-init:
Version: 0.19.0
GitCommit: de40ad0Управление службой Docker
Docker управляется через systemd. Основные команды:
systemctl start docker
systemctl restart docker
systemctl stop docker
systemctl enable docker
systemctl status dockerПример статуса службы (для справки):
? docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-09-10 07:19:35 UTC; 27s ago
TriggeredBy: ? docker.socket
Docs: https://docs.docker.com
Main PID: 29018 (dockerd)
Tasks: 7
Memory: 32.6M
CPU: 407ms
CGroup: /system.slice/docker.service
??29018 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockЗапуск контейнера
Команда docker run скачивает образ и запускает контейнер. Пример — запуск контейнера с Debian:
docker run --rm -it --name test debian:latest /bin/shОжидаемый вывод при первом запуске:
Unable to find image 'debian:latest' locally
latest: Pulling from library/debian
955615a668ce: Pull complete
Digest: sha256:08db48d59c0a91afb802ebafc921be3154e200c452e4d0b19634b426b03e0e25
Status: Downloaded newer image for debian:latest
#Чтобы выйти из контейнера, выполните:
exitУстановка Docker Compose
Docker Compose может отсутствовать в репозитории Debian, поэтому загрузим бинарник с GitHub.
curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url | grep docker-compose-Linux-x86_64 | cut -d '"' -f 4 | wget -qi -После загрузки сделайте файл исполняемым и переместите в системный путь:
chmod +x docker-compose-Linux-x86_64
mv docker-compose-Linux-x86_64 /usr/bin/docker-composeПроверка версии Docker Compose:
docker-compose versionПример вывода:
docker-compose version 1.29.2, build 5becea4c
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019Основные команды Docker Compose
- Запуск сервисов в фоне:
docker-compose up -d- Остановка и удаление контейнеров, сетей и прочего:
docker-compose down- Пауза / возобновление:
docker-compose pause
docker-compose unpause- Показать запущенные контейнеры:
docker-compose ps- Просмотр логов сервисов:
docker-compose logsКритерии приёмки
- docker version показывает установленный клиент и сервер.
- systemctl status docker — служба active (running).
- docker run –rm hello-world или docker run –rm debian:latest успешно выполняется.
- docker-compose version показывает установленную версию.
Краткая памятка (cheat sheet)
# Управление службой
systemctl start|stop|restart|enable|status docker
# Базовые команды docker
docker pull
docker run --rm -it --name /bin/sh
docker ps
docker ps -a
docker logs
docker-compose up -d
docker-compose down
docker-compose ps
docker-compose logs Ролевые чек-листы
Системный администратор:
- Установить зависимости и репозиторий Docker.
- Обеспечить резервность важных настроек.
- Настроить регулярные обновления безопасности.
Разработчик:
- Протестировать локальные compose-файлы.
- Убедиться, что образы билдятся и работают в контейнере.
DevOps-инженер:
- Интегрировать сборку образов в CI/CD.
- Настроить мониторинг и логирование для контейнеров.
Безопасность и рекомендации
- Не предоставляйте доступ в Docker group пользователям без необходимости — это эквивалентно root-доступу до сокета /var/run/docker.sock.
- Ограничьте привилегированные контейнеры и используйте не привилегированные образы.
- Обновляйте Docker и образы регулярно.
- Разграничьте сети и используйте брандмауэр для сервисов.
Когда это не подходит — альтернативы и ограничения
- Для систем без systemd или с политиками обеспечения безопасности (например, SELinux в жёстком режиме) возможны дополнительные настройки.
- Podman — бездемонная альтернатива Docker, совместимая с большинством workflow и часто предпочтительна для хостов с повышенными требованиями безопасности.
- Если нужна оркестрация на проде, рассмотрите Kubernetes вместо использования только docker-compose.
Типичные проблемы и способы диагностики
Docker не запускается:
- Просмотрите логи: journalctl -u docker.service и systemctl status docker.
- Проверяйте свободное место и права на /var/lib/docker.
Ошибка при скачивании образа:
- Проверьте сетевое соединение и DNS.
- Убедитесь, что образ существует и имя указано правильно.
Права доступа к сокету:
- Если при работе с docker без sudo — “permission denied” на /var/run/docker.sock, добавьте пользователя в группу docker: usermod -aG docker
(пользователь должен выйти и войти снова).
- Если при работе с docker без sudo — “permission denied” на /var/run/docker.sock, добавьте пользователя в группу docker: usermod -aG docker
Совместимость и заметки по версиям
- В примерах приведены версии, обнаруженные в демонстрационных выводах: Docker Engine 20.10.8 и docker-compose 1.29.2. В вашей системе версии могут отличаться — это нормально.
- Команда apt-key устарела в некоторых дистрибутивах: для современных установок рекомендуется при возможности использовать более безопасные способы добавления ключей (см. официальную документацию Docker).
Краткая методология тестирования после установки
- Проверить службу: systemctl status docker.
- Выполнить простой контейнер: docker run –rm hello-world.
- Запустить compose-приложение: docker-compose up -d и проверить логи.
- Убедиться, что сервисы перезагружаются и сохраняют состояние при reboot (systemctl enable).
Заключение
Поздравляем — Docker и Docker Compose установлены на Debian 11. Теперь вы можете контейнеризовать приложения, запускать многосервисные стеки через docker-compose и интегрировать контейнеры в рабочие процессы разработки и деплоя.
Сводка:
- Добавили репозиторий Docker и установили docker-ce.
- Установили docker-compose как бинарник из релиза GitHub.
- Проверили работу службы, запустили контейнер и составили памятку команд.
Примечание: если вы планируете производственное использование, дополните настройку мониторингом, бэкапами и политиками безопасности.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента