Установка Docker на Ubuntu: APT, Snap, Rootless — полное руководство 2026

Выберите правильный путь установки Docker в Ubuntu.

Содержимое страницы

Установка Docker на Ubuntu должна быть простой, но на практике несколько вариантов установки Docker конкурируют за одно и то же имя команды, каждый из которых имеет различную упаковку, поведение при обновлении и последствия для безопасности.

В этом руководстве сравниваются все основные пути установки, чтобы вы могли выбрать подходящий для вашего компьютера.

Варианты, с которыми вы можете столкнуться, включают:

  • docker.io из репозиториев Ubuntu
  • docker-ce из официального APT-репозитория Docker
  • Docker из Snap
  • Docker Desktop
  • вручную загруженные пакеты .deb
  • скрипт удобства Docker
  • Rootless Docker (Docker без прав root)

docker workplace

Хотя все они предоставляют инструменты для работы с контейнерами, они не являются взаимозаменяемыми пакетами. Лучший выбор зависит от того, является ли машина рабочей станцией разработчика, 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.io
  • docker-ce
  • docker-ce-cli
  • docker-buildx-plugin
  • docker-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.io Ubuntu, когда согласованность репозиториев 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 проходит через файлы единиц и операционные привычки.

Читать далее

Подписаться

Получайте новые материалы про системы, инфраструктуру и AI engineering.