Docker позволяет запускать приложения в изолированных контейнерах и удобно управлять их обновлением, сетями и постоянными данными. В этой инструкции разберём два наиболее распространённых варианта: Docker Engine на Ubuntu и Docker Desktop на Windows.
Для домашнего сервера, VPS или виртуальной машины с Linux обычно используется Docker Engine. На обычном Windows-компьютере проще всего использовать Docker Desktop с WSL 2.
Установка Docker на Ubuntu
Эта инструкция подходит для актуальных 64-битных версий Ubuntu, включая Ubuntu 22.04 LTS, 24.04 LTS и 26.04 LTS. Docker официально поддерживает архитектуры amd64 и arm64, а также несколько других архитектур.
Проверяем версию Ubuntu
Сначала можно посмотреть установленную версию системы:
cat /etc/os-release
И архитектуру:
dpkg --print-architecture
Например:
amd64
или:
arm64
Удаляем старые или конфликтующие пакеты
Если Docker на этой системе раньше не устанавливался, этот шаг обычно ничего не удалит. Но он помогает избежать конфликта с пакетами docker.io, старым docker-compose, containerd или runc.
sudo apt remove \
docker.io \
docker-compose \
docker-compose-v2 \
docker-doc \
docker-buildx \
podman-docker \
containerd \
runc
Если Ubuntu сообщит, что какие-либо пакеты не установлены, это нормально. Официальная документация Docker также рекомендует удалить конфликтующие пакеты перед установкой Docker CE.
Добавляем официальный репозиторий Docker
Обновляем список пакетов:
sudo apt update
Устанавливаем необходимые компоненты:
sudo apt install -y ca-certificates curl
Создаём каталог для ключей:
sudo install -m 0755 -d /etc/apt/keyrings
Загружаем официальный GPG-ключ Docker:
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
Теперь добавляем официальный репозиторий Docker:
sudo tee /etc/apt/sources.list.d/docker.sources <<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
Так Docker будет устанавливаться и обновляться непосредственно из официального репозитория Docker.
Устанавливаем Docker Engine и Docker Compose
Устанавливаем основные компоненты:
sudo apt install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
Здесь устанавливаются Docker Engine, командная строка Docker, containerd, Buildx и современный Docker Compose.
Обратите внимание: сейчас используется команда:
docker compose
а не старая:
docker-compose
Проверяем состояние Docker
После установки Docker на Ubuntu обычно запускается автоматически.
Проверяем:
sudo systemctl status docker
Если всё работает, в статусе будет:
active (running)
Выйти из просмотра статуса можно клавишей:
q
Если Docker по какой-то причине не запущен:
sudo systemctl start docker
Проверяем установленную версию
docker --version
Проверяем Docker Compose:
docker compose version
Более подробная информация:
sudo docker version
Запускаем первый контейнер
Docker предоставляет специальный тестовый образ hello-world.
Запускаем:
sudo docker run hello-world
Docker скачает небольшой образ, создаст из него контейнер и выведет сообщение об успешной установке.
Если этот тест завершился без ошибки, Docker Engine работает правильно.
Как запускать Docker без sudo
По умолчанию обычному пользователю может потребоваться писать:
sudo docker ps
Можно добавить текущего пользователя в группу docker:
sudo usermod -aG docker $USER
После этого нужно выйти из учётной записи и войти снова.
Либо можно сразу обновить членство в группах:
newgrp docker
Теперь проверяем:
docker ps
и:
docker run hello-world
Важно понимать, что участники группы docker фактически получают очень высокие права на системе, сопоставимые с root-доступом. Поэтому добавлять в эту группу следует только доверенных пользователей.
Будет ли Docker запускаться после перезагрузки
На Ubuntu Docker обычно автоматически запускается вместе с системой.
Проверить:
systemctl is-enabled docker
Обычно ответ будет:
enabled
При необходимости можно включить автозапуск вручную:
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
На Ubuntu и Debian автозапуск Docker обычно уже включён после установки.
Несколько полезных команд после установки
Посмотреть запущенные контейнеры:
docker ps
Посмотреть все контейнеры:
docker ps -a
Посмотреть скачанные образы:
docker images
Посмотреть Docker-сети:
docker network ls
Посмотреть Docker volumes:
docker volume ls
Общая информация о системе Docker:
docker info
Важное замечание о Firewall
При публикации портов контейнера необходимо соблюдать осторожность.
Например:
ports:
- "8080:80"
может сделать порт контейнера доступным через сетевой интерфейс сервера.
Docker отдельно предупреждает, что опубликованные порты могут обходить ожидаемое поведение некоторых правил ufw и firewalld. Для серверов с Docker firewall следует настраивать с учётом цепочек Docker, в частности DOCKER-USER.
Поэтому на AppsHome мы по возможности будем использовать либо локальные привязки:
127.0.0.1:8080:80
либо внутренние Docker-сети и reverse proxy / Cloudflare Tunnel.
Установка Docker на Windows
На Windows для большинства пользователей лучше использовать Docker Desktop.
Docker Desktop включает Docker Engine, Docker CLI, Docker Compose и необходимые компоненты для запуска Linux-контейнеров через WSL 2. Для обычного Windows 10 или Windows 11 это значительно проще, чем пытаться вручную собирать отдельное Docker-окружение.
Проверяем виртуализацию
Docker Desktop с WSL 2 требует аппаратную виртуализацию.
Проверить её можно в:
Диспетчер задач
→ Производительность
→ ЦП
Там должно быть:
Виртуализация: Включено
Если указано, что виртуализация отключена, её необходимо включить в BIOS или UEFI.
Проверяем WSL
Откройте PowerShell:
wsl --version
Docker требует современную версию WSL; в актуальной документации минимально указана WSL 2.1.5, хотя рекомендуется использовать последнюю доступную версию.
Если WSL ещё не установлен, откройте PowerShell от имени администратора:
wsl --install
После установки Windows может попросить перезагрузить компьютер.
Если WSL уже установлен, обновите его:
wsl --update
После обновления снова проверьте:
wsl --version
Устанавливаем Docker Desktop
Скачиваем Docker Desktop for Windows с официального сайта Docker.
После загрузки запускаем:
Docker Desktop Installer.exe
Для большинства домашних пользователей подходит стандартная установка для текущего пользователя с использованием WSL 2.
Во время установки рекомендуется использовать:
Use WSL 2 instead of Hyper-V
если этот вариант предлагается.
В современных версиях Docker Desktop режим per-user является рекомендуемым вариантом для большинства пользователей. Для Linux-контейнеров он использует WSL 2.
Первый запуск Docker Desktop
После установки запустите:
Docker Desktop
Дождитесь появления статуса, показывающего, что Docker Engine запущен.
После этого откройте PowerShell или Windows Terminal:
docker version
Проверяем Compose:
docker compose version
И выполняем тест:
docker run hello-world
Если появляется приветственное сообщение Docker, установка завершена успешно.
Проверяем WSL 2 backend
В Docker Desktop можно открыть:
Settings
→ General
Для обычной работы с Linux-контейнерами должен использоваться:
Use the WSL 2 based engine
На совместимых системах этот режим обычно включён автоматически.
Использование Docker внутри Ubuntu WSL
Если в Windows установлена отдельная Ubuntu через WSL, можно дать ей доступ к Docker Desktop.
Откройте:
Docker Desktop
→ Settings
→ Resources
→ WSL Integration
И включите нужный Linux-дистрибутив.
После этого внутри Ubuntu WSL можно выполнять:
docker ps
и:
docker compose version
при этом Docker Engine будет обслуживаться Docker Desktop.
Где Docker хранит данные в Windows
При использовании WSL 2 Docker Desktop хранит свои Linux-данные внутри WSL-окружения.
Поэтому не стоит вручную удалять каталоги Docker из:
AppData
или внутренние WSL-файлы, если вы не понимаете последствия.
Расположение виртуального диска Docker можно изменить через настройки Docker Desktop.
Windows Home и Windows Pro
Для запуска обычных Linux-контейнеров Docker Desktop подходит и для Windows Home.
Но для запуска Windows Containers требуются поддерживаемые редакции Windows Pro или Enterprise. Docker Desktop также не предназначен для установки на Windows Server; для серверных Windows-систем используется другой подход.
Ubuntu или Windows — что лучше для домашнего сервера
Для постоянного домашнего сервера или VPS мы рекомендуем:
Ubuntu Server
+
Docker Engine
+
Docker Compose
Такое окружение легче, проще автоматизируется и не требует графической оболочки.
Windows с Docker Desktop удобнее для рабочего компьютера, разработки, тестирования Docker Compose и знакомства с контейнерами.
Например:
Сервер:
Ubuntu → Docker Engine → контейнеры
Рабочий ПК:
Windows → Docker Desktop → WSL 2 → контейнеры
Первый реальный контейнер
После установки hello-world полезно запустить что-нибудь, что можно открыть в браузере.
Например nginx:
docker run -d \
--name appshome-test \
-p 8080:80 \
nginx:alpine
Проверяем:
docker ps
После этого на локальном компьютере можно открыть:
http://localhost:8080
Если Docker установлен на отдельном сервере:
http://IP-СЕРВЕРА:8080
После проверки удаляем тестовый контейнер:
docker rm -f appshome-test
Что делать дальше
После установки самого Docker следующий шаг — научиться запускать приложения через Docker Compose.
Вместо длинных команд вида:
docker run ...
конфигурация приложения будет храниться в понятном файле:
compose.yaml
И запускаться одной командой:
docker compose up -d
Именно такой способ мы будем использовать в большинстве практических инструкций AppsHome.
