Есть два варианта установки платформы контейнеризации 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
Убедитесь, что используется версия 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 чтобы получить возможность запускать команды docker без повышения привилегий и ввода пароля через sudo:
$ sudo usermod -aG docker $USER
Проверьте, что Docker desktop и compose установлены успешно:
$ docker --version
$ docker compose version
Теперь нужно настроить автоматически запуск docker в WSL. В современных дистрибутивах Linux для WSL2 добавлена полноценная поддержка systemd. Проверьте, что он включен:
$ cat /etc/wsl.conf
[boot] systemd=true
Затем проверьте, что systemd используется в качестве системы инициализации Linux:
$ stat /sbin/init
В данном используется systemd, т.к. процесс /sbin/init это символьная ссылка на /lib/systemd/systemd.
Запустите сервис docker engine и включите автоматический запуск:
$ sudo systemctl enable --now docker.service
$ systemctl status docker.service
Если 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
Нажмите 1 для выбора режима iptables-legacy.
Теперь вы можете выполнять команды к docker в WSL из командной строки Windows. Перед командами docker нужно указывать wsl. Например, вывести список доступных образов в Docker:
wsl docker images
Теперь вы можете разрабатывать и запускать 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:
- Docker Desktop WSL 2 Tech Preview
- Ubuntu 18.04 из Windows Store
В обоих пунктах следуем всем инструкциям по установке и настройке.
Установка дистрибутива Ubuntu 18.04
Перед запуском Ubuntu 18.04 необходимо включить Windows WSL и Windows Virtual Machine Platform посредством выполнения двух команд в PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
(потребует перезагрузку компьютера)Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
После необходимо удостовериться, что мы будем использовать WSL v2. Для этого в терминале WSL или PowerShell последовательно выполняем команды:
wsl -l -v
— смотрим, какая версия установлена в данный момент. Если 1, то движемся далее по спискуwsl --set-version ubuntu 18.04 2
— для обновления до версии 2wsl -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 важно выбрать подходящий бэкенд для работы с контейнерами: 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.
2. После успешной установки всех компонентов перезапустите компьютер.
Первичная настройка
1. Откройте установленный дистрибутив с помощью меню Пуск — найдите установленный дистрибутив (Ubuntu).
2. При первом запуске системы нужно создать имя пользователя и пароль для дистрибутива Linux.
3. Первичная настройка завершена, можно приступать к использованию WSL 2.
Альтернативный вариант — запустить WSL через PowerShell. Для этого введите команду wsl и система предложит произвести первичную настройку.
Установка Hyper-V
Для установки компонентов Hyper-V откройте PowerShell от имени администратора и выполните команду:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Она установит все компоненты для работы Hyper-V, после чего нужно будет перезапустить компьютер.
Проверить корректность установки Hyper-V можно с помощью команды:
Get-WindowsOptionalFeature -Online -FeatureName *hyper*|ft
Установка Docker с бэкендом WSL 2
- Скачайте дистрибутив Docker Desktop с официального сайта и запустите установщик. Галочки оставьте на всех пунктах.
- После установки перезайдите в учетную запись и откройте ярлык Docker Desktop.
- Если все прошло успешно, вы увидите интерфейс инструмента:
Установка Docker с бэкендом Hyper-V
1. Скачайте дистрибутив Docker Desktop с официального сайта и запустите установщик. В инсталляционном окне уберите галочку Use WSL 2 instead of Hyper-V.
2. После установки перезайдите в учетную запись и откройте ярлык Docker Desktop.
3. Если установка выполнена корректно, программа запустится без ошибок и вы увидите интерфейс:
Запуск контейнера
Рассмотрим запуск первого контейнера на примере самого популярного образа — hello-world.
Поиск и скачивание образа
Поскольку вы только установили Docker Desktop, в системе нет образов контейнеров, которые можно запустить. Исправим это.
- Перейдите в раздел Images и нажмите кнопку Search images to run.
- Введите hello-world. В текущем окне на выбор есть две кнопки: Pull и Run. Если планируете для начала просто скачать образ, то выбирайте Pull. Если скачать и сразу запустить — Run.
- Оставляем стандартные настройки для запуска.
Проверка работы контейнера
Чтобы посмотреть запущенные контейнеры, перейдите во вкладку Containers и выберите созданный на прошлом этапе. В нашем примере для него было автоматически сгенерировано имя determined_jennings. Открыв контейнер, вы увидите сообщение, если настройка установка прошла успешно.
Как настроить запуск Docker при старте Windows
Для автозапуска Docker Desktop при авторизации на компьютере достаточно поставить галочку в настройках: Settings → General → Start Docker Desktop when you sign in to your computer.
После этого Docker Desktop будет запускаться автоматически при включении устройства.
Запуск Docker в облаке
Docker Desktop — удобный инструмент для локальной работы, но в ряде случаев может потребоваться облачная инфраструктура:
- если мощности вашего ПК не хватает для работы с контейнерами;
- если нужна среда для тестирования без нагрузки на локальную машину;
- если вы работаете с ML/AI и нужны видеокарты для обучения моделей.
1. В панели управления в верхнем меню перейдем в раздел Продукты → Облачные серверы.
2. Нажмем кнопку Создать сервер.
3. Выберем имя, регион и сегмент пула. Важно учесть, что от сегмента зависят доступные конфигурации и стоимость. После создания сервера менять сегмент пула нельзя.
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
.
6. Для работы Containers Ready сервер должен быть доступен из интернета. Для этого создадим приватную подсеть и подключим публичный IP-адрес. В поле Сеть выберем Приватная подсеть и добавим новый публичный адрес. Подробнее о настройке подсети можно узнать в документации.
6. Добавьте 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
-
Скачайте Docker Desktop с официального сайта Docker: https://www.docker.com/products/docker-desktop
-
Установите 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:
-
Откройте Docker Desktop.
-
Перейдите в «Settings» и выберите «Resources».
-
В разделе «WSL Integration» вы увидите список доступных дистрибутивов. Включите интеграцию для Ubuntu, активировав соответствующий переключатель.
-
Нажмите «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
- Windows 11: Ensure you are running Windows 11, as WSL is a feature introduced in Windows 10 and further improved in Windows 11.
- 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
-
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.
-
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
-
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:
- 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.
- 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
-
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.
-
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.
-
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