EUR
european

EUR

usa

USD

Russian Ru
Ex. VAT Ex. VAT 0%

Установка Docker на популярные дистрибутивы Linux: руководство по установке Docker на Linux

Уровень: Средний
Ожидаемое время: ~15 минут
Цель: Настроить безопасную, децентрализованную среду путем установки Docker для самостоятельного хостинга личных сервисов, таких как Nextcloud, Bitwarden и Matrix.

Введение

Самостоятельный хостинг собственных «облачных» сервисов гарантирует конфиденциальность и полное владение данными. Чтобы разворачивать сервисы, такие как Nextcloud (для хранения файлов), Bitwarden (для управления паролями) или Matrix (для безопасного общения), избегая сложностей с зависимостями на уровне хоста, вам потребуются изолированные среды. В этом руководстве мы рассмотрим, как установить Docker на Linux, чтобы создать надежную, воспроизводимую основу для самостоятельного хостинга. Независимо от того, нужна ли вам полная настройка Docker на Linux для одного сервера или целого парка машин, каждый шаг ниже применим к Ubuntu, Debian и RHEL-совместимым дистрибутивам. К концу этого руководства по установке Docker на Linux вы получите готовую к продуктивной эксплуатации среду с настроенными по лучшим практикам параметрами безопасности.

Терминология

Прежде чем продолжить, убедитесь, что вы понимаете эти основные концепции:

  • Docker: Платформа для разработки, доставки и запуска приложений в изолированных средах.
  • Docker Engine: Основная клиент-серверная технология, которая создает и запускает контейнеры.
  • Контейнер (Container): Стандартизированный, исполняемый компонент, объединяющий исходный код приложения с библиотеками операционной системы и зависимостями, необходимыми для его запуска.
  • Образ (Image): Шаблон только для чтения с инструкциями по созданию контейнера.
  • Демон Docker (Docker daemon): Фоновая служба, работающая на хосте, которая управляет сборкой, запуском и распространением контейнеров.
  • Docker CLI: Интерфейс командной строки, используемый для взаимодействия с демоном.
  • Docker Hub: Публичный реестр, поддерживаемый Docker, для поиска и обмена образами контейнеров.
  • Реестр (Registry): Система хранения и распространения образов контейнеров.
  • Установка (Installation): Процесс подготовки программ к выполнению.
  • Менеджер пакетов (Package manager): Программный инструмент, автоматизирующий установку, обновление, настройку и удаление программ.
  • Репозиторий (Repository): Централизованное место, где хранятся и поддерживаются пакеты программного обеспечения.
  • Официальный репозиторий Docker (Official Docker repository): Надежный источник, поддерживаемый Docker, для получения стабильных пакетов программного обеспечения.
  • Пакет (Package): Сжатый архив, содержащий все файлы, которые поставляются с определенным приложением.
  • Зависимость (Dependency): Программа или библиотека, необходимая другой программе для правильного функционирования.
  • Стабильный релиз (Stable release): Версия программного обеспечения, которая прошла тщательное тестирование и считается надежной для использования в рабочей среде.
  • Версия (Version): Уникальное состояние программного обеспечения, отражающее его специфические функции и исправления.

Предварительные требования

Перед началом работы убедитесь, что выполнены следующие условия:

  • Операционная система: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 или RHEL-совместимые (AlmaLinux, Rocky, RHEL) 8/9/10
  • Доступ: sudo или root-доступ к серверу
  • Необходимые знания: уверенное использование командной строки Linux

Шаг 1: Настройка репозитория Docker

Чтобы гарантированно получить последний безопасный и стабильный релиз, всегда используйте Официальный репозиторий Docker, а не стандартные репозитории ОС.

Для Ubuntu:

Сначала обновите индекс вашего менеджера пакетов Linux и установите необходимые пакеты, чтобы разрешить apt использовать репозиторий через HTTPS:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Добавьте официальный GPG-ключ Docker:

sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /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

Для Debian:

Шаги для установки Docker на Debian повторяют процесс Ubuntu, но используют URL-адрес репозитория, специфичный для Debian. Сначала обновите индекс вашего менеджера пакетов Linux и установите необходимые пакеты:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Добавьте официальный GPG-ключ Docker:

sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Настройте стабильный репозиторий:

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Для RHEL-совместимых (AlmaLinux, Rocky, RHEL):

Установите пакет yum-utils и настройте стабильный репозиторий:

sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

Info

Docker публикует пакеты для всех RHEL-совместимых дистрибутивов (включая AlmaLinux и Rocky Linux) по пути репозитория centos. Использование этого URL-адреса ожидаемо и полностью поддерживается.

Результат: Репозиторий Docker теперь добавлен в вашу систему, что позволяет менеджеру пакетов загружать последние пакеты Docker.

Шаг 2: Установка Docker на Ubuntu и Debian

После настройки репозитория Docker перейдите к установке Docker Engine на Ubuntu или Debian - команды идентичны. Этот шаг применим к обоим дистрибутивам.

Сначала удалите любые конфликтующие пакеты, предоставляемые репозиториями ОС:

sudo apt remove docker.io podman-docker containerd runc

Снова обновите индекс пакетов apt и используйте менеджер пакетов Linux для установки необходимых компонентов:

sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin

Результат: Команда выполняется, загружая пакеты и любые необходимые зависимости из репозитория Docker. Вы должны увидеть, как менеджер пакетов успешно завершает установку Docker Engine без ошибок.

Info

docker-ce - это Docker Community Edition, бесплатная версия, идеально подходящая для тех, кто хостит сервисы самостоятельно.

Шаг 3: Установка Docker на RHEL-совместимые (AlmaLinux, Rocky, RHEL)

Для систем на базе RHEL используйте yum для установки Docker Engine.

Сначала удалите любые конфликтующие пакеты, предоставляемые репозиториями ОС:

sudo yum remove docker docker-client docker-client-latest docker-common \ docker-latest docker-latest-logrotate docker-logrotate docker-engine \ podman runc

Выполните следующую команду:

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin

Результат: Менеджер пакетов устанавливает необходимые пакеты. Вас попросят принять GPG-ключ (если вы не передали флаг -y); подтвердите это. После завершения вы увидите сообщение об успешной установке.

Шаг 4: Проверка установки Docker Engine

После установки поведение демона Docker различается в зависимости от дистрибутива. В Ubuntu и Debian docker.service запускается автоматически после установки. В дистрибутивах семейства RHEL - нет.

Warning

Только для RHEL-семейства: Если в процессе установки обновлялось ядро (например, через зависимость kernel-core), перезагрузите сервер перед запуском службы Docker:

sudo reboot

Если пропустить этот шаг, команда systemctl start docker может завершиться ошибкой br_netfilter / addrtype, потому что запущенное ядро не соответствует установленным модулям.

Когда сервер работает на актуальном ядре, запустите и включите службу. Следующие команды идемпотентны и безопасны для выполнения на всех системах:

sudo systemctl start docker sudo systemctl enable docker

Результат: Демон Docker запускается, и система создает символическую ссылку (symlink), чтобы обеспечить его автоматический запуск при каждой перезагрузке.

Убедитесь, что установка Docker Engine прошла успешно, запустив образ hello-world:

sudo docker run hello-world

Результат: Docker CLI связывается с демоном Docker, скачивает образ hello-world из Docker Hub и запускает контейнер. В вашем терминале должно появиться сообщение "Hello from Docker!".

Шаг 5: Действия после установки Docker

По умолчанию для выполнения команд Docker требуется sudo. Чтобы запускать команды Docker от имени пользователя без прав root, вам нужно добавить своего пользователя в группу docker. Это важные действия после установки Docker для удобного управления вашей инфраструктурой самостоятельного хостинга.

Создайте группу docker (если она еще не существует):

getent group docker || sudo groupadd docker

Добавьте своего пользователя в группу docker:

sudo usermod -aG docker $USER

Результат: Ваш пользователь добавлен в группу. Чтобы изменения вступили в силу, вы должны выйти из системы и снова войти, или активировать новое членство в группе в текущей сессии:

newgrp docker

Info

newgrp docker создает новую оболочку с обновленным членством в группе. Любая команда docker, выполненная после этого, будет работать без sudo, но только в этой новой оболочке. Открытие другого терминала по-прежнему требует полного повторного входа.

Warning

Членство в группе docker предоставляет привилегии, эквивалентные root-доступу к хосту. Для сред самостоятельного хостинга, где приоритетом является безопасность, настоятельно рассмотрите запуск Docker в режиме rootless (см. Шаг 6).

После выполнения newgrp docker (или повторного входа в систему) проверьте конфигурацию, выполнив команду без sudo:

docker run hello-world

Результат: Вы снова должны увидеть сообщение "Hello from Docker!", что подтверждает успешность ваших действий после установки Docker.

Альтернатива: Быстрая установка с помощью удобного скрипта

Для тестовых сред или сред разработки Docker предоставляет удобный скрипт (convenience script).

Warning

Этот метод не рекомендуется для продакшена. Он выполняется без фиксации версий, выполняет безусловное обновление, если Docker уже установлен, и загружает все зависимости без проверки.

Рекомендуется скачать скрипт и проверить его перед выполнением:

curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh

Шаг 6 (Опционально): Запуск Docker в режиме rootless

Для сред самостоятельного хостинга запуск Docker без прав root (rootless) повышает безопасность, выполняя демон Docker и контейнеры от имени обычного пользователя.

6.1 Предварительные требования

Сначала остановите и отключите общесистемную службу и сокет Docker, а также удалите файл сокета:

sudo systemctl stop docker.service docker.socket sudo systemctl disable docker.service docker.socket sudo rm -f /var/run/docker.sock

Убедитесь, что у вашего пользователя настроены subuid и subgid (обычно настраивается автоматически):

cat /etc/subuid cat /etc/subgid

Включите linger для вашего пользователя, чтобы демон мог запускаться при загрузке:

sudo loginctl enable-linger $USER

6.2 Установка дополнительных пакетов

Для Ubuntu/Debian:

sudo apt install docker-ce-rootless-extras uidmap dbus-user-session

Для AlmaLinux/RHEL (shadow-utils предоставляет uidmap и обычно уже установлен):

sudo yum install docker-ce-rootless-extras

6.3 Установка демона rootless

Запустите скрипт настройки из полноценной пользовательской сессии целевого пользователя (не из sudo su или non-login SSH-сессии). Если вы находитесь в non-login контексте, сначала экспортируйте необходимые переменные:

export XDG_RUNTIME_DIR=/run/user/$(id -u) export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus

Затем запустите скрипт настройки:

dockerd-rootless-setuptool.sh install

Info

Первый запуск скрипта настройки сразу после включения linger может быть нестабильным. Если демон не запускается, просто запустите скрипт установки еще раз.

6.4 Настройка переменных окружения

Добавьте следующие переменные в конфигурационный файл вашей оболочки (например, ~/.bashrc):

export PATH=/usr/bin:$PATH export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock

Выполните source для файла или перезапустите оболочку, чтобы применить изменения.

6.5 Ограничения режима rootless

  • Невозможно публиковать порты < 1024 (Docker предоставляет обходные пути, такие как setcap, проброс портов slirp4netns или маршрутизацию).
  • Нет поддержки --net=host.
  • Режим Swarm и overlay-сети не поддерживаются.
  • AppArmor не поддерживается.
  • Флаг --privileged не предоставляет root-доступ на уровне хоста.
  • Данные хранятся в ~/.local/share/docker (учитывайте это для резервного копирования и квот).
  • Требуется cgroup v2.
  • Использует драйвер хранилища overlayfs вместо overlay2.

Откат (Rollback)

Если вам нужно отменить установку Docker на Linux - будь то стандартная конфигурация Docker для Linux или rootless-конфигурация - выполните приведенные ниже шаги в указанном порядке.

1. Откат режима rootless (пропустите, если rootless не настраивался):

Если вы настроили режим rootless, отмените эти изменения в первую очередь, до удаления пакетов:

dockerd-rootless-setuptool.sh uninstall rm -rf ~/.local/share/docker sudo loginctl disable-linger $USER

Info

Запуск rootless-деинсталляции после удаления пакетов завершится ошибкой, поскольку скрипт настройки является частью пакета docker-ce-rootless-extras. Всегда удаляйте rootless-режим, пока пакеты еще установлены.

2. Удаление пакетов:

Debian/Ubuntu:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.gpg

AlmaLinux/Rocky/RHEL:

sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/yum.repos.d/docker-ce.repo

3. Удаление группы:

sudo groupdel docker || true

Warning

Удаление пакетов не удаляет автоматически образы, контейнеры, тома или измененные конфигурационные файлы. Команды rm -rf безвозвратно удаляют эти каталоги с данными.

Заключение

Ваша установка Docker на Linux завершена и проверена. Основа теперь настроена безопасно. Вы можете переходить к развертыванию контейнеров для ваших инструментов самостоятельного хостинга, обеспечивая полный контроль над вашими файлами Nextcloud, хранилищами паролей Bitwarden и коммуникациями Matrix.

Версия документа: 1.0
Последнее обновление: Май 2026
Ответственный: Команда технической документации

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA