Установка Docker в WSL2

Запускать контейнеры Docker для Linux можно не только в самом линуксе, но и в Windows. В этом нам поможет технология WSL (Windows Subsystem for Linux) — слой совместимости для запуска Linux-приложений в ОС Windows 10.

Прежде чем приступить к установке Docker необходимо убедиться, что система удовлетворяет следующим требованиям:

Включение WSL

Если WSL ещё не включена, то необходимо это сделать в панели управления. Выбираем «Установка и удаление программ», затем «Включение или отключение компонентов Windows». Там необходимо установить галочку напротив пункта «Подсистема Windows для Linux»:

Обновление до WSL 2

Теперь необходимо обновиться до второй версии WSL, особенно если WSL уже была установлена ранее. Для этого включаем платформу виртуальных машин (Virtual Machine Platform) в PowerShell запущенном от имени администратора:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Перезагружаем компьютер. После этого устанавливаем пакет обновления ядра Linux.

Затем выбираем вторую версию для всех дальнейших дистрибутивов Linux по-умолчанию:

wsl --set-default-version 2

Устанавливаем ОС

В магазине приложений Windows устанавливаем нужную нам операционную систему, например Ubuntu 22.04 LTS:

Если вы ранее её уже устанавливали, то необходимо проверить, что она использует WSL второй версии, а не первой. Это можно проверить с помощью команды:

wsl -l -v

Если версия всё же первая, то изменяем её с помощью команды:

wsl --set-version Ubuntu-22.04 2

Также необходимо сделать данный дистрибутив по-умолчанию. Для этого вводим команду:

wsl --set-default Ubuntu-22.04

Проверить статус можно с помощью команды

wsl --status

Устанавливаем Docker

Качаем Docker Desktop для Windows и устанавливаем.

В настройках устанавливаем галочку «Use the WSL 2 based engine«. Затем «Apply & Restart«.

Затем переходим в раздел ResourcesWSL Integration. Включаем пункт «Enable integration with my default WSL distro» и включаем интеграцию с нужным нам дистрибутивом (Ubuntu 22.04). Снова применяем настройки нажатием «Apply & Restart«:

Всё, теперь можно проверять работу Docker. Например, попробуем установить контейнер с nginx. Можно это сделать в терминале Linux:

sudo docker run --name some-nginx -d -p 8080:80 nginx

При этом мы его сразу увидим в Docker Desktop:

Соответственно никто не запрещает выполнять все действия и через это приложение прямо из Windows. Ну и давайте проверим, что nginx действительно работает: