Установка Docker на Ubuntu: APT, Snap, Rootless — полное руководство 2026
Выберите правильный путь установки Docker в Ubuntu.
Установка Docker на Ubuntu должна быть простой, но на практике несколько вариантов установки Docker конкурируют за одно и то же имя команды, каждый из которых имеет различную упаковку, поведение при обновлении и последствия для безопасности.
В этом руководстве сравниваются все основные пути установки, чтобы вы могли выбрать подходящий для вашего компьютера.
Варианты, с которыми вы можете столкнуться, включают:
docker.ioиз репозиториев Ubuntudocker-ceиз официального APT-репозитория Docker- Docker из Snap
- Docker Desktop
- вручную загруженные пакеты
.deb - скрипт удобства Docker
- Rootless Docker (Docker без прав root)

Хотя все они предоставляют инструменты для работы с контейнерами, они не являются взаимозаменяемыми пакетами. Лучший выбор зависит от того, является ли машина рабочей станцией разработчика, CI-раннером, небольшим сервером, домашним хостом или производственным сервером. Моя рекомендация по умолчанию спокойна, но тверда: для большинства технических пользователей на обычных машинах с Ubuntu устанавливайте Docker Engine из официального APT-репозитория Docker. Используйте docker.io из Ubuntu только тогда, когда интеграция с дистрибутивом важнее, чем упаковка от Docker. Избегайте пакета Snap, если вы специально не хотите поведение Snap и не понимаете его ограничений. Rootless Docker стоит знать, но он не является автоматически лучшим вариантом по умолчанию для каждой машины.
Это руководство объясняет компромиссы, охватывает безопасность после установки и дает чистые пути установки для каждого метода. После запуска Docker Engine Шпаргалка по Docker станет вашим ежедневным справочником команд, а Шпаргалка по Docker Compose охватит многоконтейнерные настройки. Оба находятся рядом с руководствами по Git, VS Code и CI/CD в Инструменты разработчика: Полное руководство по современным рабочим процессам.
Краткая рекомендация
Таблица ниже резюмирует, какой путь установки подходит для типичных сценариев.
| Сценарий использования | Рекомендуемая установка |
|---|---|
| Рабочая станция разработчика | Официальный APT-репозиторий Docker |
| CI-раннер | Официальный APT-репозиторий Docker, с фиксацией версии при необходимости |
| Небольшой домашний сервер | Официальный APT-репозиторий Docker |
| Производственный сервер | Официальный APT-репозиторий Docker, контролируемые обновления |
| Консервативная система только Ubuntu | Пакет docker.io Ubuntu |
| Быстрый эксперимент на десктопе | Docker Desktop или официальный APT-репозиторий |
| Настройка Ubuntu на базе Snap | Docker Snap, с осторожностью |
| Строгое требование к демону без прав root | Rootless Docker |
| Изолированный хост (air-gapped) | Ручные пакеты .deb или внутренний зеркальный репозиторий |
Если у вас нет особой причины выбрать иначе, официальный APT-репозиторий Docker является вариантом по умолчанию.
Что устанавливается
Обычная настройка Docker Engine включает несколько компонентов:
- Демон Docker:
dockerd - CLI Docker:
docker - Рантайм контейнеров:
containerd - Низкоуровневый рантайм:
runc - Плагин Buildx:
docker buildx - Плагин Compose:
docker compose
Современный Docker Compose обычно устанавливается как плагин CLI Docker. Это означает, что команда выглядит так:
docker compose version
А не так:
docker-compose version
Старая команда docker-compose всё ещё существует в старых руководствах и на старых системах, но новые установки Ubuntu должны в целом использовать плагин Compose.
Вариант 1: Установка Docker из официального APT-репозитория Docker
Это лучший вариант по умолчанию для большинства разработчиков и пользователей DevOps. Вы получаете упаковку от Docker, актуальные релизы Docker Engine, Buildx, плагин Compose и обычный путь обновлений через APT.
Сначала удалите конфликтующие пакеты
Перед установкой Docker CE удалите пакеты, которые могут конфликтовать с официальными пакетами Docker.
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
Это нормально, если APT сообщит, что некоторые из этих пакетов не установлены.
Эта команда не удаляет образы Docker, контейнеры, тома или сети, хранящиеся в /var/lib/docker. Если вы хотите полную сброс, это отдельный шаг, и его следует выполнять осознанно.
Добавьте официальный APT-репозиторий Docker
Установите предварительные требования:
sudo apt update
sudo apt install ca-certificates curl
Создайте директорию для ключей:
sudo install -m 0755 -d /etc/apt/keyrings
Загрузите ключ репозитория Docker:
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
Разрешите APT читать ключ:
sudo chmod a+r /etc/apt/keyrings/docker.asc
Добавьте репозиторий Docker, используя формат .sources deb822:
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt keyrings/docker.asc
EOF
Обновите метаданные APT:
sudo apt update
Установите Docker Engine, Buildx и Compose
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Проверьте сервис:
sudo systemctl status docker
Если он не запущен:
sudo systemctl start docker
Проверьте установку:
sudo docker run hello-world
Проверьте версии:
docker --version
docker buildx version
docker compose version
На этом этапе Docker работает, хотя вам всё ещё нужна sudo для большинства команд, если вы не настроите доступ без прав root в разделе после установки ниже.
Вариант 2: Установка Docker из репозиториев Ubuntu
Ubuntu предоставляет пакет docker.io, который вы можете установить с помощью:
sudo apt update
sudo apt install docker.io docker-compose-v2
Запустите и включите Docker:
sudo systemctl enable --now docker
Проверьте:
sudo docker run hello-world
Когда пакет Ubuntu docker.io имеет смысл
Пакет Ubuntu может быть хорошим выбором, когда:
- Вы предпочитаете пакеты, поддерживаемые Ubuntu.
- Вы хотите версию, согласованную с процессом выпуска Ubuntu.
- Вы управляете множеством хостов Ubuntu с использованием стандартных репозиториев.
- Вам не нужна новейшая версия Docker от upstream.
- Вы хотите меньше сторонних APT-источников.
Это разумный выбор. Это не “неправильно”.
Когда Ubuntu docker.io не идеален
Вместо этого используйте официальный репозиторий Docker, когда:
- Вы хотите актуальный Docker Engine от upstream.
- Вы следуете собственной документации Docker.
- Вы полагаетесь на актуальное поведение Buildx и Compose.
- Вам нужны имена пакетов Docker CE.
- Вы отлаживаете проблемы, сверяясь с документацией Docker upstream.
- Вам нужна предсказуемая паритет версий Docker между дистрибутивами.
Моя предвзятость: для машин разработчиков и хостов с большим количеством контейнеров используйте официальный APT-репозиторий Docker. Для консервативных машин, управляемых Ubuntu, docker.io приемлем.
Вариант 3: Установка Docker с помощью Snap
Docker snap устанавливается одной командой, но простота не всегда означает предсказуемое поведение на сервере или машине для разработки.
sudo snap install docker
Пакеты Snap имеют свою собственную модель упаковки, поведение обновлений, предположения об изоляции и структуру файловой системы. Это нормально для многих настольных приложений, но Docker Engine уже является системным рантаймом контейнеров, поэтому дополнительный слой Snap может удивить людей. Если вы управляете другим программным обеспечением с помощью Snap, Шпаргалка по менеджеру пакетов Snap объясняет каналы, изоляцию и поведение обновлений более подробно.
Когда Docker Snap имеет смысл
Docker Snap может быть разумным, когда:
- Вы сознательно управляете программным обеспечением с помощью Snap.
- Вы используете Ubuntu Core или среду с упором на Snap.
- Вы хотите автоматические обновления в стиле snap.
- Вы экспериментируете и вам не важно соответствие инструкциям APT от Docker upstream.
Почему я обычно избегаю Docker Snap
Я обычно избегаю Docker snap для разработки и серверного использования, потому что:
- Большая часть документации Docker предполагает стандартную структуру Docker Engine.
- Пути устранения неполадок могут отличаться от установок APT.
- Управление службами может казаться менее прозрачным.
- Автоматические обновления Snap могут быть неудобны для инфраструктурного программного обеспечения.
- Некоторые детали привязанных монтирований, сокетов и интеграции с хостом могут вас удивить.
Если Docker является центральным элементом вашего рабочего процесса, устанавливайте его как инфраструктуру, а не как случайное настольное приложение — даже когда установка через Snap выглядит соблазнительной на поверхности.
Вариант 4: Установка Docker из ручных пакетов .deb
Ручная установка пакетов .deb полезна, когда:
- Машина не может использовать внешние APT-репозитории.
- Вы создаете процесс установки офлайн.
- Вы зеркалируете пакеты внутренне.
- Вам нужен строгий контроль изменений.
Компромисс заключается в обслуживании, потому что вам необходимо вручную загружать и устанавливать новые пакеты каждый раз при обновлении.
Ручная установка обычно требует этих пакетов:
containerd.iodocker-cedocker-ce-clidocker-buildx-plugindocker-compose-plugin
Установите их с помощью:
sudo dpkg -i ./containerd.io_*.deb \
./docker-ce_*.deb \
./docker-ce-cli_*.deb \
./docker-buildx-plugin_*.deb \
./docker-compose-plugin_*.deb
Затем исправьте отсутствующие зависимости при необходимости:
sudo apt --fix-broken install
Проверьте:
sudo systemctl status docker
sudo docker run hello-world
Ручные установки .deb не являются моим первым выбором, но они остаются действительными для контролируемых или изолированных сред, где явное одобрение пакетов важнее удобства.
Вариант 5: Используйте скрипт удобства Docker
Docker предоставляет скрипт удобства:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Вы можете просмотреть, что он сделает:
sudo sh get-docker.sh --dry-run
Скрипт удобства полезен для одноразовых тестовых машин, демонстраций, лабораторий и временных сред, но я бы не использовал его в качестве основного метода установки для производственных систем. Скрипт, который настраивает репозитории и устанавливает пакеты в неинтерактивном режиме, удобен, но долгосрочная инфраструктура заслуживает явных, проверяемых шагов — поэтому для производственных хостов используйте метод репозитория APT напрямую.
Docker Desktop против Docker Engine на Ubuntu
Docker Desktop для Linux — это другой продукт, чем Docker Engine. Docker Engine — это серверный рантайм и рабочий процесс CLI, которого ожидают большинство пользователей серверов Linux, в то время как Docker Desktop добавляет графический интерфейс, интеграции с Desktop и пользовательский опыт, более близкий к использованию Docker на macOS и Windows.
Используйте Docker Desktop, когда:
- Вы хотите графический опыт Docker.
- Вам нужны функции Desktop.
- Вы согласовываетесь с командой, которая стандартизирует на Docker Desktop.
- Вам не мешает дополнительный слой.
Используйте Docker Engine, когда:
- Вы запускаете сервер.
- Вы хотите простой нативный для Linux рантайм.
- Вы предпочитаете службы, управляемые systemd.
- Вы создаете CI, DevOps или домашнюю инфраструктуру.
- Вам не нужен графический интерфейс.
Для продвинутой технической аудитории блогов Docker Engine обычно является более интересным вариантом по умолчанию на серверах Linux и CI-хостах.
После установки: Запуск Docker без Sudo
После установки это работает:
sudo docker ps
Но это может не сработать:
docker ps
Это связано с тем, что демон Docker слушает Unix-сокет, принадлежащий root. Обычное исправление — добавить вашего пользователя в группу docker.
Создайте группу при необходимости:
sudo groupadd docker
Добавьте вашего пользователя:
sudo usermod -aG docker $USER
Примените новое членство в группе:
newgrp docker
Или выйдите и войдите снова.
Тест:
docker run hello-world
Важное примечание о безопасности группы Docker
Группа docker — это не безвредная группа удобства. Пользователь, который может контролировать демон Docker, обычно получает контроль уровня root над хостом, поэтому для личной машины разработчика это часто приемлемо, но на общем сервере это серьезное решение по контролю доступа. Относитесь к членству в группе docker как к административному доступу, и если это кажется слишком широким, рассмотрите Rootless Docker.
Rootless Docker на Ubuntu
Rootless Docker запускает демон Docker и контейнеры от имени пользователя без прав root. Это не то же самое, что добавление вашего пользователя в группу docker — с группой docker демон всё ещё работает как root, тогда как в режиме rootless сам демон работает от имени вашего пользователя.
Когда Rootless Docker имеет смысл
Rootless Docker полезен, когда:
- Вы хотите снизить риск прав root на уровне демона.
- Вы на общей машине для разработки.
- Вы запускаете контейнеры, принадлежащие пользователю.
- Вам не нужны все расширенные функции сети и хранения.
- Вы хотите более безопасный вариант по умолчанию для экспериментальных рабочих нагрузок.
Когда Rootless Docker может быть неудобным
Rootless Docker может быть менее удобным, когда:
- Вам нужны привилегированные контейнеры.
- Вы полагаетесь на привязку к низким портам без дополнительной настройки.
- Вам нужны некоторые паттерны сетевой интеграции хоста.
- Вы ожидаете поведения, идентичного Docker с правами root.
- Вы следуете руководствам, написанным для обычных установок Docker Engine.
Режим rootless улучшает безопасность, но он не является лишенным трения по сравнению со стандартной установкой с правами root.
Установка Rootless Docker
Установите предварительные требования:
sudo apt update
sudo apt install uidmap
Если вы установили Docker из пакетов DEB или APT, инструмент настройки rootless должен быть доступен:
dockerd-rootless-setuptool.sh install
Если Docker с правами root уже запущен, и вы хотите только Rootless Docker, отключите системный демон:
sudo systemctl disable --now docker.service docker.socket
Вам также может понадобиться удалить сокет с правами root:
sudo rm -f /var/run/docker.sock
После установки Rootless Docker инструмент настройки обычно выводит переменные окружения для добавления в профиль оболочки. Они обычно выглядят так:
export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix:///run/user/1000/docker.sock
Ваш UID может отличаться. Проверьте точный вывод из инструмента настройки.
Включите lingering (непрерывную работу), если хотите, чтобы служба пользователя работала после выхода из системы:
sudo loginctl enable-linger $USER
Проверьте службу пользователя:
systemctl --user status docker
Запустите тестовый контейнер:
docker run hello-world
Rootful Docker против Rootless Docker
| Тема | Rootful Docker | Rootless Docker |
|---|---|---|
| Пользователь демона | root | обычный пользователь |
| Удобство команд | высокое | среднее |
| Совместимость | самая высокая | хорошая, но не идеальная |
| Позиция безопасности | слабее по умолчанию | лучше по умолчанию |
| Привилегированные контейнеры | поддерживаются | ограничены |
| Низкие порты | простой | требуется дополнительная настройка |
| Использование на сервере | распространенное | возможно, но планируйте внимательно |
| Рабочая станция разработчика | распространенное | хорошо для пользователей, озабоченных безопасностью |
Моя практическая рекомендация:
- Используйте обычный Docker с правами root для личной машины разработчика или простого сервера.
- Добавляйте в группу
dockerтолько доверенных пользователей. - Используйте Rootless Docker, когда важна изоляция пользователей.
- Не притворяйтесь, что группа
docker— это граница безопасности.
Включение Docker при загрузке
В Ubuntu Docker, установленный из обычных пакетов, обычно запускается автоматически, но стоит подтвердить это после новой установки или миграции.
Проверьте:
systemctl is-enabled docker
systemctl is-enabled containerd
Включите вручную при необходимости:
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Запустите сейчас:
sudo systemctl start docker
Отключите автозапуск:
sudo systemctl disable docker.service
sudo systemctl disable containerd.service
Для Rootless Docker используйте службу пользователя:
systemctl --user enable docker
systemctl --user start docker
И включите lingering при необходимости:
sudo loginctl enable-linger $USER
Установка или проверка Docker Compose
С официальным APT-репозиторием Docker установите Compose как плагин:
sudo apt update
sudo apt install docker-compose-plugin
Проверьте:
docker compose version
Если вы установили пакет Ubuntu, вы можете использовать:
sudo apt install docker-compose-v2
Предпочитайте:
docker compose up -d
Вместо старого стиля:
docker-compose up -d
Команда docker-compose с дефисом принадлежит к более старой эре автономного Compose. Многие системы всё ещё имеют её, но новая документация должна использовать docker compose.
Проверьте, какой Docker у вас установлен
Когда вы наследуете машину или отлаживаете сломанную настройку, эти команды помогают определить, какая упаковка Docker фактически используется.
Проверьте бинарный файл Docker:
which docker
Проверьте принадлежность пакета:
dpkg -S "$(which docker)"
Список пакетов, связанных с Docker:
dpkg -l | grep -E 'docker|containerd|runc'
Проверьте политику APT:
apt-cache policy docker-ce docker.io containerd.io docker-compose-plugin docker-compose-v2
Проверьте Snap:
snap list | grep docker
Проверьте статус службы:
systemctl status docker
systemctl status containerd
Проверьте детали сервера Docker:
docker info
Если docker info не работает без sudo, проверьте членство в группе:
groups
Миграция с Ubuntu docker.io на Docker CE
Остановите Docker:
sudo systemctl stop docker
Удалите пакеты Ubuntu:
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc containerd runc
Добавьте официальный APT-репозиторий Docker, используя шаги выше.
Установите Docker CE:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Запустите Docker:
sudo systemctl start docker
Проверьте существующие контейнеры:
docker ps -a
docker images
docker volume ls
Обычно удаление пакетов не удаляет /var/lib/docker, поэтому ваши образы, контейнеры и тома могут всё ещё существовать. Тем не менее, сначала сделайте резервную копию важных данных.
Миграция с Docker Snap на Docker CE
Сначала осмотрите, что существует:
snap list | grep docker
docker info
Остановите рабочие нагрузки и сделайте резервную копию важных томов или данных, примонтированных в bind.
Удалите snap:
sudo snap remove docker
Затем установите Docker CE из официального APT-репозитория.
Будьте осторожны с местоположениями данных. Пакеты Snap часто используют другие пути и правила изоляции. Не предполагайте, что данные Docker Snap автоматически появятся в стандартном пути /var/lib/docker после миграции.
Для важных служб экспортируйте или сделайте резервную копию данных явно перед переключением источников пакетов.
Фиксация версии Docker с помощью APT
Для систем, похожих на производственные, вам могут потребоваться контролируемые обновления.
Список доступных версий:
apt list --all-versions docker-ce
Установите конкретную версию:
VERSION_STRING="5:29.0.0-1~ubuntu.24.04~noble"
sudo apt install docker-ce=$VERSION_STRING \
docker-ce-cli=$VERSION_STRING \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
Закрепите пакеты Docker:
sudo apt-mark hold docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Уберите закрепление позже:
sudo apt-mark unhold docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Делайте это, когда вам нужны предсказуемые окна изменений. Для личного ноутбука это может быть излишним.
Примечания по брандмауэру и сетям
Docker изменяет правила фильтрации пакетов для работы сетевых настроек контейнеров, что важно, если вы используете UFW, firewalld, nftables или пользовательские правила брандмауэра.
Важные моменты:
- Опубликованные порты Docker могут обойти наивные ожидания UFW.
- Docker использует интеграцию с iptables.
- Пользовательские правила должны учитывать цепочки, созданные Docker.
- Защита сервера должна быть протестирована с реальными маппингами портов контейнеров.
- Не предполагайте, что
ufw denyзащищает порт, опубликованный Docker.
Тестируйте открытые порты с другой машины, а не только с localhost.
Пример:
docker run --rm -p 8080:80 nginx
Затем с другого хоста:
curl http://server-ip:8080
На серверах сетевые настройки Docker являются частью вашей модели безопасности, а не деталью реализации, которую можно игнорировать после установки.
Общие ошибки и исправления
Отказ в доступе к сокету Docker
Ошибка:
permission denied while trying to connect to the Docker daemon socket
Варианты исправления:
Используйте sudo:
sudo docker ps
Или добавьте вашего пользователя в группу docker:
sudo usermod -aG docker $USER
newgrp docker
Помните, что группа docker фактически эквивалентна root, поэтому относитесь к членству в группе как к решению о привилегированном доступе.
Демон Docker не запущен
Проверьте статус:
sudo systemctl status docker
Запустите его:
sudo systemctl start docker
Проверьте журналы:
journalctl -u docker --no-pager -n 100
Конфликтующие пакеты Docker
Если установка Docker CE не удалась из-за конфликтов, удалите старые пакеты. Если сам APT находится в плохом состоянии после добавления репозитория Docker, пройдите через Устранение неполадок Ubuntu APT для сломанных пакетов и ошибок GPG перед повторной попыткой.
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
Затем повторите попытку:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Команда Compose не найдена
Проверьте современный Compose:
docker compose version
Установите плагин:
sudo apt install docker-compose-plugin
Если вы ожидали старую команду:
docker-compose version
Вы можете следовать старой документации. Предпочитайте обновление команды до docker compose.
Старая конфигурация Docker, принадлежащая root
Если вы запускали Docker с sudo перед настройкой доступа к группе, ваша пользовательская конфигурация может принадлежать root.
Исправьте владение:
sudo chown "$USER":"$USER" "$HOME/.docker" -R
sudo chmod g+rwx "$HOME/.docker" -R
Или удалите конфигурацию, если она вам не нужна:
sudo rm -rf "$HOME/.docker"
Она будет воссоздана.
Невозможно подключиться к Rootless Docker
Проверьте окружение:
echo "$DOCKER_HOST"
Проверьте службу пользователя:
systemctl --user status docker
Установите путь к сокету при необходимости:
export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
Добавьте его в профиль оболочки только после подтверждения его правильности.
Удаление Docker Engine
Удалите пакеты Docker CE:
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
Удалите данные Docker только если вы действительно хотите удалить образы, контейнеры и тома:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
Удалите файлы репозитория Docker:
sudo rm -f /etc/apt/sources.list.d/docker.sources
sudo rm -f /etc/apt/keyrings/docker.asc
Обновите APT:
sudo apt update
Для Docker Snap:
sudo snap remove docker
Для Ubuntu docker.io:
sudo apt purge docker.io docker-compose-v2
Рекомендуемый путь установки для большинства пользователей Ubuntu
Для большинства технических пользователей Ubuntu это чистый путь:
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
Затем решите, хотите ли вы доступ к группе для удобства или Rootless Docker для более строгой изоляции:
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
Финальное субъективное руководство
Установка Docker на Ubuntu — это операционный выбор, а не просто выбор пакета. Метод, который вы выберете, влияет на обновления, границы безопасности и то, насколько близко ваш хост соответствует документации Docker upstream.
Мои практические правила:
- Используйте официальный APT-репозиторий Docker для большинства машин разработчиков и DevOps.
- Используйте
docker.ioUbuntu, когда согласованность репозиториев Ubuntu важнее свежести upstream. - Избегайте Docker Snap для серьезных контейнерных рабочих процессов, если вы специально не хотите поведение Snap.
- Избегайте скрипта удобства для производственных хостов.
- Используйте современный
docker compose, а не старыйdocker-compose. - Относитесь к группе
dockerкак к привилегированному доступу. - Рассмотрите Rootless Docker, когда важна изоляция пользователей.
- Фиксируйте версии на системах, похожих на производственные.
- Тестируйте поведение брандмауэра при публикации портов на серверах.
Самая скучная установка Docker обычно является лучшей: официальный APT-репозиторий, явный ключевой кольцо, плагин Compose, служба systemd, понятные разрешения и ни одного загадочного слоя упаковки в середине. После того как движок установлен, многокомпонентные рабочие нагрузки — включая стеки локальных LLM — являются логическим следующим шагом; например, см. Ollama в Docker Compose для запуска локальных моделей в контейнерах. Чтобы держать стек Compose запущенным через перезагрузки на одном сервере, Запуск Docker Compose как службы Linux с systemd проходит через файлы единиц и операционные привычки.
Читать далее
- https://docs.docker.com/engine/install/ubuntu/ “Install Docker Engine on Ubuntu | Docker Docs”
- https://packages.ubuntu.com/noble/docker.io “Ubuntu - Details of package docker.io in noble”