Введение
Docker в WSL позволяет запускать контейнеры Linux прямо из Windows без необходимости использовать Hyper‑V или другие виртуальные машины. После настройки вы получите полноценный Docker на базе Linux, доступный из любого терминала или инструментов Windows.
Требования
- Windows 10 (версия 2004+), Windows 11 (22H2+) или более новая.
- Права администратора для выполнения команд в PowerShell/CMD.
- Доступ в интернет для загрузки пакетов.
- Предпочтительно использовать дистрибутив Ubuntu 22.04 LTS (но можно установить и другие).
Пошаговая инструкция
Шаг 1: Включить WSL и установить Ubuntu
Откройте PowerShell от имени администратора и выполните команду:
wsl --install
Она автоматически включит WSL, установит ядро WSL 2 и интегрирует дистрибутив Ubuntu.
Шаг 2: Обновить ядро WSL до последней версии
После перезагрузки выполните:
wsl --update
Обновление улучшает производительность и устраняет известные проблемы.
Шаг 3: Установить Docker в Ubuntu
Добавьте репозиторий Docker и установите пакеты:
sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
Импортируйте ключ GPG:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Добавьте репозиторий:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Обновите индекс и установите Docker:
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
::in-article-ad:: ::
Шаг 4: Запустить Docker-демон
Запустите сервис и настроить автозапуск:
sudo systemctl start docker
sudo systemctl enable docker
Шаг 5: Добавить текущий пользователь в группу docker
Чтобы не использовать sudo для команд Docker:
sudo usermod -aG docker $USER
Закройте и снова откройте терминал (или выполните exec bash).
Шаг 6: Проверить установку Docker
Проверьте версии компонентов:
docker --version
docker compose version
Выполните первый тестовый контейнер:
docker run --rm hello-world
Если выводит сообщение «Hello from Docker!», всё работает.
Проверка результата
- Docker работает:
docker versionпоказывает клиент и демон. - Контейнеры запускаются: успешный запуск
hello-worldи любых других образов. - Нет ошибок доступа: команды Docker выполняются без
Permission denied.
Возможные проблемы
- «permission denied» при запуске Docker: убедитесь, что пользователь добавлен в группу
docker(usermod -aG docker $USER) и перезалогиньте сессию. - WSL не включена: выполните
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartи перезагрузитесь. - Docker не запускается: проверьте статус сервиса
sudo systemctl status dockerи логи/var/log/syslog(илиjournalctl -u docker). - Устаревшее ядро WSL: повторно запустите
wsl --updateи перезагрузите дистрибутив (sudo apt update && sudo apt upgrade).