Как установить Docker на Ubuntu и Windows: пошаговая инструкция

1 просмотр

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.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *