Windows subsystem for linux docker

Есть два варианта установки платформы контейнеризации Docker на Windows 10 и 11: в виде нативного win приложения Docker Desktop for Windows (используется встроенные компоненты Hyper-V + контейнеры Windows), или в виде полноценной установки Docker Engine в дистрибутив Linux в подсистеме Windows Subsystem for Linux (WSL2). В этой статье мы рассмотрим процесс установки и базовой настройки Docker в среде WSL без использования Docker Desktop.

Преимущества от запуска Docker внутри WSL:

  • Docker Desktop требует Pro или Enterprise редакции Windows 10 (11). Docker Engine в WSL будет работать на домашних (Home) редакциях Windows
  • Docker Desktop для Windows потребляет довольно много RAM и места для хранения отдельных виртуальных машин Hyper-V (в случае использования Windows контейнеров)
  • Лицензионные ограничения позволяют бесплатно использовать Docker Desktop для персональных проектов, или в небольших организациях (до 250 сотрудников). В других случаях нужно приобрести лицензию.

Итак, предполагаем что у вас есть компьютер с Windows 10 и 11, на котором вы установили среду Windows Subsystem for Linux (WSL2) и скачали один из доступных Linux образов (Ubuntu 24.04 в этом примере). Выведите список доступны дистрибутивов WSL:

wsl --list

Чтобы задать образ WSL, который будет использоваться по-умолчанию, выполните команду:

wsl --setdefault Ubuntu-24.04

wsl - список дистрибутивов

Убедитесь, что используется версия WSL2:

wsl --version

Если нет, выполните команду:

wsl --set-default-version 2

Чтобы подключиться к вашему дистрибутиву Linux в среде WSL, выполните:

wsl.exe

Обновите пакеты в дистрибутиве Linux (Ubuntu в этом случае):

$ sudo apt-get update && sudo apt-get upgrade -y

Затем выполните установку Docker Engine в Linux с помощью универсального официального скрипта:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

Игнорируйте появившееся предупреждение об установке Docker в среде WSL.

Установка docker engine в WSL2 на Windows

Добавьте вашего пользователя в группу docker чтобы получить возможность запускать команды docker без повышения привилегий и ввода пароля через sudo:

$ sudo usermod -aG docker $USER

Проверьте, что Docker desktop и compose установлены успешно:

$ docker --version
$ docker compose version

проверить, что docker и docker compose установлены

Теперь нужно настроить автоматически запуск docker в WSL. В современных дистрибутивах Linux для WSL2 добавлена полноценная поддержка systemd. Проверьте, что он включен:

$ cat /etc/wsl.conf

[boot]
systemd=true

Проверить что systemd включен в WSL

Затем проверьте, что systemd используется в качестве системы инициализации Linux:

$ stat /sbin/init

В данном используется systemd, т.к. процесс /sbin/init это символьная ссылка на /lib/systemd/systemd.

/lib/systemd/systemd

Запустите сервис docker engine и включите автоматический запуск:

$ sudo systemctl enable --now docker.service
$ systemctl status docker.service

Автозапуск docker.service в WSL

Если systemd не используется по той или иной причине, можно добавить его в автозагрузку WSL:

$ nano /etc/wsl.conf

[boot]
command = "/usr/sbin/service docker start"

WSL2 по-умолчанию может использовать следующие ресурсы компьютера:

  • 50% оперативной памяти
  • 25% файла подкачки (swap)
  • 100% ресурсов процессора

Если вы хотите ограничить использование ресурсов хоста подсистемой WSL2, создайте в профиле текущего пользователя текстовый файл
%UserProfile%\.wslconfig
. В этом файле можно задать глобальные ограничения для всех дистрибутивов в WSL. Например:

[wsl2]
memory=8GB
processors=4
swap=2GB

Перезапустите образ WSL из командой строки Windows:

wsl --shutdown

Попробуйте запустить тестовый docker образ в WSL:

$ docker run hello-world

Docker Engine скачает и запустит демонстрационный контейнер hello-world из Docker Hub.

Для обеспечения максимального производительности WSL2, храните все файлы контейнеров внутри WSL (а не в директориях, которые пробрасываются с Windows, таких как /mnt/c).

В современных версиях Linux (Ubuntu 22.04, Debian 10+) для управления встроенным файрволом используется nftables, а не iptables. Для нативной поддержки nftables в WSL требуется ядро Linux 5.8 или выше. В старых версиях ядра для корректной работы сети придется включать совместимость с iptables:

$ sudo update-alternatives --config iptables

update-alternatives --config iptables

Нажмите 1 для выбора режима iptables-legacy.

Теперь вы можете выполнять команды к docker в WSL из командной строки Windows. Перед командами docker нужно указывать wsl. Например, вывести список доступных образов в Docker:
wsl docker images

Управление docker контейнерами из Windows

Теперь вы можете разрабатывать и запускать Docker контейнеры непосредственно на своем Windows компьютере.

Время на прочтение4 мин

Количество просмотров108K

Для полноценной работы с проектом на docker’е в WSL необходима установка WSL 2. На момент написания заметки ее использование возможно только в рамках участия в программе предварительной оценки Windows (WSL 2 доступна в сборках 18932 и выше). Так же отдельно стоит упомянуть, что необходима версия Windows 10 Pro для установки и настройки Docker Desktop.

Важно! В WSL 2 пропала острая необходимость в Docker Desktop для Windows 10. Как обходиться без него описано в пункте Про Docker в Ubuntu.

Первые шаги

После вступления в программу предварительной оценки и установки обновлений необходимо установить дистрибутив Linux (в данном примере используется Ubuntu 18.04) и Docker Desktop с WSL 2 Tech Preview:

  1. Docker Desktop WSL 2 Tech Preview
  2. Ubuntu 18.04 из Windows Store

В обоих пунктах следуем всем инструкциям по установке и настройке.

Установка дистрибутива Ubuntu 18.04

Перед запуском Ubuntu 18.04 необходимо включить Windows WSL и Windows Virtual Machine Platform посредством выполнения двух команд в PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (потребует перезагрузку компьютера)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

После необходимо удостовериться, что мы будем использовать WSL v2. Для этого в терминале WSL или PowerShell последовательно выполняем команды:

  • wsl -l -v — смотрим, какая версия установлена в данный момент. Если 1, то движемся далее по списку
  • wsl --set-version ubuntu 18.04 2 — для обновления до версии 2
  • wsl -s ubuntu 18.04 — устанавливаем Ubuntu 18.04 в качестве дистрибутива по-умолчанию

Теперь можно запустить Ubuntu 18.04, провести настройку (указать имя пользователя и пароль).

Установка Docker Desktop

Важно! В WSL 2 пропала острая необходимость в Docker Desktop для Windows 10. Как обходиться без него описано в пункте Про Docker в Ubuntu.

В процессе установки следуем указаниям. Компьютер потребует перезапуск после установки и при первом запуске для включения Hyper-V (из-за поддержки которого и требуется версия Windows 10 Pro).

Важно! Если Docker Desktop сообщит о блокировке со стороны firewall’а, идем в настройки антивируса и вносим следующие изменения в правила сетевого экрана (в данном примере в качестве антивируса используется Kaspersky Total Security):

  • Проходим в Настройки -> Защита -> Сетевой экран -> Настроить пакетные правила -> Local Service (TCP) -> Изменить
  • Из списка локальных портов удаляем порт 445
  • Сохранить

После запуска Docker Desktop в его контекстном меню выбираем пункт WSL 2 Tech Preview.

В открывшемся окне нажимаем кнопку Start.

Теперь docker и docker-compose доступны внутри дистрибутива WSL.

Важно! В обновленном Docker Desktop теперь вкладка с WSL внутри окна настроек. Там включается поддержка WSL.

Важно! Помимо галочки активации WSL также необходимо в вкладке Resources->WSL Integration активировать Ваш WSL дистрибутив.

Запуск

Неожиданностью стали те многие проблемы, которые возникли при попытке поднять контейнеры проектов, расположенных в директории пользователя Windows.

Ошибки различного рода, связанные с запуском bash-скриптов (которые как правило стартуют при сборке контейнеров для установки необходимых библиотек и дистрибутивов) и прочих, обычных для разработки на Linux, вещей, заставили задуматься о размещении проектов непосредственно в директории пользователя Ubuntu 18.04.

.

Из решения предыдущей проблемы вытекает следующая: как работать с файлами проекта через IDE, установленную на Windows. В качестве «best practice» я нашел для себя только один вариант — работа посредством VSCode (хотя являюсь поклонником PhpStorm).

После скачивания и установки VSCode обязательно устанавливаем в расширение Remote Development extension pack.

После установки выше упомянутого расширения достаточно просто выполнить команду code . в директории проекта при запущенной VSCode.

В данном примере для обращения к контейнерам через браузер необходим nginx. Установить его через sudo apt-get install nginx оказалось не так просто. Для начала потребовалось обновить дистрибутив WSL посредством выполнения sudo apt update && sudo apt dist-upgrade, и только после этого запустить установку nginx.

Важно! Все локальные домены прописываются не в файле /etc/hosts дистрибутива Linux (его там даже нет), а в файле hosts (обычно расположенном C:\Windows\System32\drivers\etc\hosts) Windows 10.

Про Docker в Ubuntu

Как подсказали знающие пользователи в комментариях к заметке, docker внутри дистрибутива WSL 2 абсолютно работоспособен. Это позволяет не устанавливать Docker Desktop на Windows 10 и решает проблему с наличием версии Windows 10 Pro (необходимость в Pro возникает именно в связи с использованием Docker Desktop). Устанавливается согласно инструкциям с родного сайта:

  • https://docs.docker.com/install/linux/docker-ce/ubuntu/
  • https://docs.docker.com/install/linux/linux-postinstall/
  • https://docs.docker.com/compose/install/

Если при выполнении команды docker начнет ругаться на демона, проверьте статус сервиса — в моем случае как и nginx он не запускается автоматически. Запустите его командой sudo service docker start.

Если в момент сборки вывалится ошибка «Service failed to build: cgroups: cannot find cgroup mount destination: unknown» попробуйте следующее решение (не мое, найдено мною, ссылка в источниках): sudo mkdir /sys/fs/cgroup/systemd; sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd.

Работа с проектом через PhpStorm

Чтобы обеспечить возможность работы с проектом в WSL через PhpStorm, необходимо сделать следующее:

  • Запускаем командную строку Windows 10 от имени администратора;
  • В командной строке Windows 10 выполняем команду mklink /D C:\project_directory \\wsl$\Ubuntu\home\user\project_directory, которая создаст символьную ссылку на папку проекта.

После этого в IDE можно открыть проект по пути C:\project_directory

P.S. Дмитрий Симагин, спасибо за решение.

Источники

Более подробное описание каждого шага можно найти тут:

  • https://code.visualstudio.com/docs/remote/wsl
  • https://docs.docker.com/docker-for-windows/wsl-tech-preview/
  • https://docs.docker.com/docker-for-windows/
  • https://docs.microsoft.com/ru-ru/windows/wsl/wsl2-install
  • https://docs.docker.com/install/linux/docker-ce/ubuntu/
  • https://docs.docker.com/install/linux/linux-postinstall/
  • https://docs.docker.com/compose/install/
  • https://github.com/docker/for-linux/issues/219

Что такое Docker Desktop

Docker Desktop — это инструмент для работы с Docker-контейнерами на локальной машине. Он упрощает процесс разработки, тестирования и развертывания приложений, позволяя взаимодействовать с контейнерами как через консоль, так и через удобный интерфейс. 

Ключевые особенности:

  • понятный графический интерфейс,
  • удобное управление образами и контейнерами,
  • встроенные инструменты для мониторинга,
  • возможность разработки и тестирования без привязки к серверу,
  • поддержка работы с Docker Compose.

Если вы только начинаете изучение Docker и хотите разобраться в основах, рекомендуем ознакомиться с отдельным вводным обзором. В нем разобрали принципы работы Docker, его основные компоненты и решаемые задач. Из текста вы узнаете, как создать и запустить контейнер, а также какую роль играет Kubernetes в связке c Docker.

Скриншот интерфейса Docker Desktop.

Интерфейс Docker Desktop. Источник.

О системных требованиях

Перед установкой Docker Desktop важно выбрать подходящий бэкенд для работы с контейнерами: WSL 2 или Hyper-V. Оба имеют свои особенности, так что от выбора будут зависеть и системные требования. Далее в тексте разберемся, когда и какой бэкенд подойдет лучше.

Когда нужен WSL

WSL 2 (Windows Subsystem for Linux 2) — это усовершенствованная версия подсистемы Windows для Linux, которая использует виртуальную машину с реальным Linux-ядром. В отличие от первой версии, WSL 2 обеспечивает лучшую совместимость с Linux-инструментами, технологиями и приложениями, а также более высокую производительность. 

Преимущества использования WSL 2 с Docker Desktop

Работа с Linux-контейнерами. Docker изначально разрабатывали для работы в Linux-среде, поэтому большинство контейнеров в Docker Hub — это образы, ориентированные на Linux. Использование WSL 2 предоставляет Docker Desktop полноценную Linux-среду на Windows.

Повышенная производительность. WSL 2 значительно ускоряет выполнение контейнеров, что особенно заметно в сравнении с WSL 1 или Hyper-V, о котором мы расскажем дальше. Это преимущество обеспечивает полноценное Linux-ядро, которое позволяет Docker работать гораздо быстрее и с меньшими накладными расходами.
Работа с файловой системой Linux. В WSL 2 можно монтировать файловую систему Linux, что позволяет работать с кодом и данными в нативной Linux-среде. Это особенно важно при разработке приложений, которые будут запускаться в Linux-контейнерах и требуют специфической настройки среды — например, прав доступа или структуры каталогов.

Когда нужен Hyper-V

Рассмотрим ключевые сценарии, в которых предпочтительнее использовать Hyper-V. 

Если система не поддерживает WSL 2

Некоторые сборки системы не позволяют включать необходимые компонентов для работы WSL 2 В частности, это касается старых версий Windows, а также устройств, которые не поддерживают Windows 10 Pro или 11 Pro, — WSL 2 для них недоступна, так как требует включенной виртуализации на уровне системы. В таких случаях можно использовать Hyper-V для виртуализации контейнеров и запуска Docker Desktop.

Для работы с Windows-контейнерами

Docker Desktop поддерживает как Linux-, так и Windows-контейнеры. Однако последние требуют прямого взаимодействия с ядром Windows, а WSL 2 предоставляет только Linux-среду. Hyper-V позволяет запускать Windows-контейнеры благодаря виртуализации Windows-системы.

Для изоляции и обеспечения безопасности

Hyper-V создает полноценные виртуальные машины, обеспечивая строгую изоляцию контейнеров друг от друга и от хост-системы. Это может быть важно в корпоративной среде или при работе с чувствительными данными.

Разница между WSL 2 и Hyper-V

Если вам нужны Linux-контейнеры и высокая производительность — выбирайте WSL 2. Если же требуется строгая изоляция или работа с Windows-контейнерами, Hyper-V будет предпочтительнее. Подробнее о разнице по ключевым критериям — в таблице:

Критерий WSL 2 Hyper-V
Производительность Высокая (нативное Linux-ядро) Низкая (работа через полноценную ВМ)
Изоляция Относительно низкая Высокая (контейнеры изолированы)
Типы контейнеров Только Linux-контейнеры Linux- и Windows-контейнеры

Системные требования Docker Desktop

При использовании WSL 2 в качестве бэкенда

  • WSL версии 1.1.3.0 или новее.
  • Windows 11 64-bit Home / Pro / Enterprise / Education, версия 22H2 или новее.
  • Windows 10 64-bit Home / Pro / Enterprise / Education, версия 22H2  (сборка 19045) или новее.
  • Включенная функция WSL 2 в Windows. Подробная инструкция есть в документации Microsoft;
  • 4 ГБ ОЗУ.
  • Включенная аппаратная виртуализация в BIOS на вашей локальной машине.

При использовании Hyper-V в качестве бэкенда

  • Windows 11 64-разрядная Enterprise / Pro / Education, версия 22H2 или новее.
  • Windows 10 64-разрядная Enterprise / Pro / Education, версия 22H2 (сборка 19045) или новее.
  • Включенная функция Hyper-V. Подробнее об установке — в документации Microsoft;
  • 4 ГБ ОЗУ.
  • Включенная аппаратная виртуализация в BIOS на вашей локальной машине.

Установка WSL 2

1. Откройте PowerShell от имени администратора и введите команду wsl —install. Она выполняет следующие действия:

  • включает дополнительные компоненты WSL и платформы виртуальных машин;
  • скачивает и устанавливает последнюю версию ядра Linux;
  • задает WSL 2 в качестве среды по умолчанию;
  • скачивает и устанавливает дистрибутив Ubuntu Linux.
Скриншот PowerShell. Установка дистрибутива.

Ввод команды в PowerShell.

2. После успешной установки всех компонентов перезапустите компьютер.

Скриншот PowerShell. Установка компонентов.

Успешная установка компонентов.

Первичная настройка

1. Откройте установленный дистрибутив с помощью меню Пуск — найдите установленный дистрибутив (Ubuntu).

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

Создание имени пользователи и пароля в консоли.

3. Первичная настройка завершена, можно приступать к использованию WSL 2.

Альтернативный вариант — запустить WSL через PowerShell. Для этого введите команду wsl и система предложит произвести первичную настройку.

Скриншот Powershell. Запуск WSL-2.

Запуск WSL через Powershell.

Установка Hyper-V

Для установки компонентов Hyper-V откройте PowerShell от имени администратора и выполните команду:

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Она установит все компоненты для работы Hyper-V, после чего нужно будет перезапустить компьютер.

Установка компонентов в PowerShell.

Ввод команды в PowerShell.

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

    Get-WindowsOptionalFeature -Online -FeatureName *hyper*|ft
Проверка установленных компонентов в PowerShell.

Проверка установленных компонентов.

Установка Docker с бэкендом WSL 2

  1. Скачайте дистрибутив Docker Desktop с официального сайта и запустите установщик. Галочки оставьте на всех пунктах.
Окно конфигурации в установщике.

  1. После установки перезайдите в учетную запись и откройте ярлык Docker Desktop
  2. Если все прошло успешно, вы увидите интерфейс инструмента:
Скриншот интерфейса Docker Desktop. 

Установка Docker с бэкендом Hyper-V

1. Скачайте дистрибутив Docker Desktop с официального сайта и запустите установщик. В инсталляционном окне уберите галочку Use WSL 2 instead of Hyper-V.

Окно конфигурации в установщике.

2. После установки перезайдите в учетную запись и откройте ярлык Docker Desktop

3. Если установка выполнена корректно, программа запустится без ошибок и вы увидите интерфейс:

Скриншот интерфейса Docker Desktop. 

Запуск контейнера

Рассмотрим запуск первого контейнера на примере самого популярного образа — hello-world. 

Поиск и скачивание образа

Поскольку вы только установили Docker Desktop, в системе нет образов контейнеров, которые можно запустить. Исправим это.

  1. Перейдите в раздел Images и нажмите кнопку Search images to run.
Скриншот раздела Images в Docker Desktop.

  1. Введите hello-world. В текущем окне на выбор есть две кнопки: Pull и Run. Если планируете для начала просто скачать образ, то выбирайте Pull. Если скачать и сразу запустить — Run.
Поиск образов контейнеров в Docker Desktop.

  1. Оставляем стандартные настройки для запуска.
Окно установки образа.

Проверка работы контейнера

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

Просмотр созданного контейнера в Docker Desktop.

Как настроить запуск Docker при старте Windows

Для автозапуска Docker Desktop при авторизации на компьютере достаточно поставить галочку в настройках: Settings → General → Start Docker Desktop when you sign in to your computer.

Скриншот раздела «Настройки» в Windows.

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

Запуск Docker в облаке

Docker Desktop — удобный инструмент для локальной работы, но в ряде случаев может потребоваться облачная инфраструктура:

  • если мощности вашего ПК не хватает для работы с контейнерами;
  • если нужна среда для тестирования без нагрузки на локальную машину;
  • если вы работаете с ML/AI и нужны видеокарты для обучения моделей.

1. В панели управления в верхнем меню перейдем в раздел Продукты → Облачные серверы.

Выбор раздела «Облачные серверы» в панели управления Selectel.

2. Нажмем кнопку Создать сервер

Создание облачного сервера в панели управления Selectel.

3. Выберем имя, регион и сегмент пула. Важно учесть, что от сегмента зависят доступные конфигурации и стоимость. После создания сервера менять сегмент пула нельзя. 

Настройка имени, региона и пула в панели управления Selectel.

4. В качестве источника выберите готовый образ, приложение, свой образ, сетевой диск или снапшот. В нашем случае — приложение Containers Ready с настроенной Ubuntu 22.04. Оно содержит:

  • Docker версии 27.0.3;
  • плагины для запуска Docker Compose версии 2.11.1;
  • Portainer версии 2.20.3 — графический интерфейс для мониторинга и управления Docker-контейнерами, образами и сетью Docker.
Выбор источника для сервера в панели управления.

5. Конфигурацию для примера возьмем базовую — 2 vCPU и 2 ГБ RAM, а в поле Диски выберем SSD Быстрый на 20 ГБ. Важно: это минимальные требования. Рекомендуем выбирать параметры серверы, исходя из ваших задач. 

Помимо прочего, на этапе создания сервера или позже вы можете добавить GPU. При этом объем ОЗУ, который выделяется серверу, может быть меньше указанного в конфигурации — ядро ОС резервирует ее часть. Выделенный объем на сервере можно посмотреть с помощью команды sudo dmesg | grep Memory

Конфигурирование дисков, RAM и vCPU в панели управления.

6. Для работы Containers Ready сервер должен быть доступен из интернета. Для этого создадим приватную подсеть и подключим публичный IP-адрес. В поле Сеть выберем Приватная подсеть и добавим новый публичный адрес. Подробнее о настройке подсети можно узнать в документации.

Настройка сети для облачного сервера в панели управления.

6. Добавьте SSH-ключ в поле Доступ. Подробнее о его генерации можно узнать в отдельной инструкции.

Добавление SSH-ключа в панели управления.

7. Ознакомьтесь с ценой и нажмите кнопку Создать сервер

Раздел со стоимостью облачного сервера и его создание.

Сервер готов к использованию! Подробности о создании сервера с Сontainers Ready вы можете найти в документации. Если вам нужно запускать контейнеры с ML-моделями на мощных видеокартах, развернуть облачные серверы с GPU можно за несколько минут. Они помогут ускорить обучение нейросетей без закупки дорогого оборудования.

Читайте другие тексты о Docker

Введение

Добро пожаловать в мир интеграции Docker с Windows Subsystem for Linux (WSL)! Этот процесс позволяет объединить мощь Docker с всей гибкостью, которую предлагает WSL. Если вы разработчик, работающий на Windows, вы наверняка оцените, насколько это может упростить вашу рабочую среду. В этой статье я покажу вам, как связать эти два инструмента, чтобы улучшить ваш опыт разработки и повысить общую производительность.

WSL предлагает возможность использовать полную функциональность Linux прямо в Windows, и интеграция с Docker сделает ваш процесс разработки более плавным. В этой статье мы разберем поэтапный процесс интеграции Docker с WSL, от установки до настройки и оптимизации. Давайте начнем!

Установка WSL

Перед тем как настраивать Docker, нам понадобится убедиться, что WSL установлен и настроен на вашем компьютере. Вот основные шаги.

Включение функции WSL

Первым делом, нам нужно включить WSL на вашем компьютере. Выполните следующую команду в PowerShell с правами администратора:

wsl --install

// Эта команда автоматически установит последнюю версию WSL и Ubuntu как дистрибутив по умолчанию

После этого перезагрузите компьютер, чтобы изменения вступили в силу.

Установка дистрибутива Linux

Теперь, когда WSL готов к использованию, можно установить дистрибутив Linux. Я рекомендую начать с Ubuntu, поскольку он широко поддерживается и хорошо документирован. Выполните команду в Microsoft Store либо в PowerShell:

wsl --install -d Ubuntu

// Команда устанавливает Ubuntu в качестве дистрибутива в WSL

Запустите Ubuntu после установки и следуйте инструкциям на экране для завершения настройки. Вам будет предложено создать учетную запись пользователя и пароль.

Установка Docker Desktop

Теперь, когда вы готовы использовать WSL, давайте установим Docker Desktop. Это приложение добавит возможность интеграции Docker с WSL.

Установка и настройка Docker Desktop

  1. Скачайте Docker Desktop с официального сайта Docker: https://www.docker.com/products/docker-desktop

  2. Установите Docker Desktop и следуйте инструкциям установщика. Убедитесь, что опция «Use the WSL 2 based engine» активирована:

    • Откройте Docker Desktop.
    • Перейдите в «Settings» и выберите «General».
    • Убедитесь, что флажок рядом с «Use the WSL 2 based engine» установлен.

Интеграция Docker с WSL 2

Теперь, когда Docker Desktop установлен, давайте включим интеграцию с WSL 2:

  1. Откройте Docker Desktop.

  2. Перейдите в «Settings» и выберите «Resources».

  3. В разделе «WSL Integration» вы увидите список доступных дистрибутивов. Включите интеграцию для Ubuntu, активировав соответствующий переключатель.

  4. Нажмите «Apply & Restart», чтобы применить изменения.

Преимущества интеграции

Теперь у вас установлено и настроено все необходимое для работы Docker с WSL. Давайте рассмотрим преимущества этого подхода.

Повышенная производительность

WSL 2 использует виртуальную машинную среду, которая обеспечивает более высокую скорость работы программ, чем традиционные реализации. С этой интеграцией ваши контейнеры Docker будут получать выгоду от быстрого файлового ввода-вывода, сокращая задержки.

Улучшенное взаимодействие

Интеграция Docker с WSL упрощает доступ к файловой системе. Вы можете легко взаимодействовать с файлами между Windows и Linux, эффективно используя обе среды.

Легкая настройка и использование

Настройка среды стала интуитивно понятной и менее затратной по времени. Вам не нужно беспокоиться о сложных переходах между Windows и Linux — все сделано для вашей максимальной продуктивности.

Практическое использование

Теперь, когда все настроено, давайте посмотрим на простой пример использования Docker в WSL.

Запуск контейнера

Перейдите в дистрибутив Ubuntu через терминал и запустите следующий Docker-контейнер:

docker run -d -p 80:80 docker/getting-started

// Эта команда запускает контейнер с веб-сервером Nginx, доступный по адресу http://localhost в вашем браузере

Управление контейнерами

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

docker ps

// Команда выводит список работающих контейнеров

Заключение

Поздравляю! Вы успешно настроили интеграцию Docker с WSL. Теперь у вас под рукой мощный инструмент для разработки на Windows, обеспечивающий эффективность и быстроту работы. Это решение предоставляет лучший опыт работы в Linux среде, без необходимости покидать зону комфорта Windows. Надеюсь, эта статья помогла вам в настройке и дала представление о том, как использовать эти инструменты для ваших проектов. Удачной разработки!

Docker on WSL (Windows Subsystem for Linux)

This guide covers the steps to set up Docker on Windows Subsystem for Linux (WSL) in a Windows 11 environment.

Docker on WSL: A Step-by-Step Guide for Windows 11 Users

Prerequisites

  1. Windows 11: Ensure you are running Windows 11, as WSL is a feature introduced in Windows 10 and further improved in Windows 11.
  2. WSL Installation: Install the Windows Subsystem for Linux (WSL) by running the following command in PowerShell or Command Prompt:

This command will enable the necessary features and install the default Ubuntu distribution of Linux.

Setting up Docker on WSL

  1. Start the Ubuntu WSL instance: You should be able to see the «Ubuntu» (or the Linux distribution you selected) app in your Windows Start menu. Click on it to launch the WSL environment.

  2. Install Docker in Ubuntu WSL:

    a. Update the package lists:

    b. Install the necessary dependencies:

       sudo apt-get install ca-certificates curl
    

    c. Add Docker’s official GPG key:

       sudo install -m 0755 -d /etc/apt/keyrings
    
       sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    

    d. Add the Docker repository to Apt sources:

       echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    

    e. Install Docker packages:

       sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  3. Verify Docker installation:

    sudo docker run hello-world
    

This command should pull and run the «hello-world» Docker image, verifying that Docker is installed and functioning correctly.

Granting User Access to Docker

By default, Docker commands can only be executed by the superuser (sudo). To allow a regular user to run Docker commands without using sudo, follow these steps:

  1. Add the user to the docker group:
sudo usermod -aG docker admin1

Replace admin1 with the username of the user you want to grant access to.

  1. Restart the Ubuntu WSL environment for the changes to take effect.

This command adds the specified user (admin1) to the docker group, which grants them the necessary permissions to run Docker commands without using sudo.

Understanding the WSL, Sandbox, and Docker Relationship

  1. WSL (Windows Subsystem for Linux): This is a feature in Windows 10 and later that allows you to run Linux command-line tools and utilities directly on your Windows machine. It creates a Linux environment within Windows, providing a seamless integration between the two operating systems.

  2. Sandbox: The Ubuntu VM (or any other Linux distribution) running within WSL can be considered a sandbox, providing a separate, isolated environment for running Linux applications.

  3. Docker: If you install Docker within the Ubuntu WSL, you can use it to create and manage containers within that sandboxed environment.

In summary, WSL provides a way to create a sandboxed Linux environment within Windows, and you can use tools like Docker within that sandbox to create and manage containers.

Additional Resources

  • Microsoft Learn: Getting Started with WSL
  • Docker Documentation: Install Docker Engine on Ubuntu

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Подключение не защищено как исправить в хроме windows
  • Ограничение количества ядер windows
  • Windows 10 home ситилинк
  • Windows rar windows 7 download
  • Советника по переходу на windows 7