Гид по технологиям

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

• 4 min read • DevOps • Обновлено 25 Nov 2025
Установка Docker и Docker Compose на Debian 11
Установка Docker и Docker Compose на Debian 11

Логотип Docker и изображение контейнеров

Кратко

В этой инструкции описаны шаги по установке 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 Engine 20.10.8 и docker-compose 1.29.2. В вашей системе версии могут отличаться — это нормально.
  • Команда apt-key устарела в некоторых дистрибутивах: для современных установок рекомендуется при возможности использовать более безопасные способы добавления ключей (см. официальную документацию Docker).

Краткая методология тестирования после установки

  1. Проверить службу: systemctl status docker.
  2. Выполнить простой контейнер: docker run –rm hello-world.
  3. Запустить compose-приложение: docker-compose up -d и проверить логи.
  4. Убедиться, что сервисы перезагружаются и сохраняют состояние при reboot (systemctl enable).

Заключение

Поздравляем — Docker и Docker Compose установлены на Debian 11. Теперь вы можете контейнеризовать приложения, запускать многосервисные стеки через docker-compose и интегрировать контейнеры в рабочие процессы разработки и деплоя.

Сводка:

  • Добавили репозиторий Docker и установили docker-ce.
  • Установили docker-compose как бинарник из релиза GitHub.
  • Проверили работу службы, запустили контейнер и составили памятку команд.

Примечание: если вы планируете производственное использование, дополните настройку мониторингом, бэкапами и политиками безопасности.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро