Docker ubuntu install windows

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

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

Предварительные требования

Прежде чем начать, убедитесь, что ваша система имеет примерно следующую конфигурацию:

  • Windows 10 Version 1803 Build 1734 и выше
  • Ubuntu for WSL 16.0.4 LTS или что-то в этом роде (ваша версия может немного отличаться)

Важно, чтобы версия и сборка Windows были не ниже того, что здесь указано. Дело в том, что, начиная с этих цифр, в ядро Windows ​​WSL были внесены принципиальные изменения, которые позволяют использовать cgroups (control groups — в 2008 году добавлены в ядро Linux). А они необходимы Docker’у для управления ресурсами вашей системы в контейнерах.

Установка Docker-CE 17.09.0

Мы будем устанавливать Docker Community Edition 17.09.0 (потому что на момент написания этой статьи более свежие версии падали при установке на WSL).

Первое, что мы сделаем — избавимся от всех предыдущих установок Docker (если таковые были). Для этого запустим bash-терминал и напишем следующее:

$ sudo apt-get remove docker docker-engine docker.io containerd runc

Теперь установим репозиторий для Docker CE. Через apt-get мы можем установить нужную версию, самостоятельно не занимаясь её сборкой из исходников. Следуя рекомендациям на официальном сайте Docker, мы пишем следующие команды:

# Обновляем список пакетов
$ sudo apt-get update
# Устанавливаем необходимые пакеты, которые позволяют apt получить доступ по HTTPS
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

# Добавляем в свою систему ключ GPG официального репозитория Docker
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#Добавляем репозиторий Docker в список пакетов:
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# Обновляем данные о пакетах с учетом пакетов Docker из вновь добавленного репозитория
$ sudo apt-get update

Если вы когда либо добавляли новый репозиторий с помощью apt, всё это вам в целом знакомо. Если нет — надеюсь, вы всё равно остались со мной :)

Далее устанавливаем Docker:

$ sudo apt-get install docker-ce=17.09.0~ce-0~ubuntu

Если вы не используете WSL в стиле Ubuntu, список доступных версий можно посмотреть так:

$ apt list -a docker-ce

… или использовать аналогичную команду какой-то другой библиотеки, если вы отказались от APT

В конце нужно добавить своего текущего пользователя в группу ‘docker’, чтобы получить возможность правильно использовать Docker Engine («движок»), который должен быть запущен в вашей системе с правами root.

sudo usermod -aG docker $USER

Запуск Docker на Windows

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

Чтобы немного упростить процесс, создайте в /usr /local/sbin/ новый файл — скрипт, который содержит соответствующие команды для запуска сервиса Docker:

$ sudo nano /usr/local/sbin/start_docker.sh

со следующим содержимым:

#!/usr/bin/env bash
sudo cgroups-mount
sudo service docker start

Первая команда sudo — это монтирование cgroups (оно выполнится при перезагрузке), а вторая отдает сервис docker в руки systemd (это подсистема Ubuntu для инициализации и управления службами).

Теперь разрешите скрипту запуститься и выполните его:

$ sudo chmod +x /usr/local/sbin/start_docker.sh
# Запрещаем запись
$ sudo chmod 755 /usr/local/sbin/start_docker.sh
$ /bin/sh /usr/local/sbin/start_docker.sh

Однако сервис Docker не запустится по двум причинам:

  1. Сценарий выполняет вызовы как суперпользователь, поэтому сам скрипт должен быть запущен с правами суперпользователя, чтобы работать как задумано. По идее, сделать это так же просто, как написать любую команду sudo, но для этого пользователь должен после каждой загрузки вводить свои данные, что сильно раздражает.
  2. Первая команда для монтирования cgroups должна быть выполнена в bash с повышенными привилегиями. Чтобы запустить её без ввода данных пользователем, нам придётся использовать Windows Task Scheduler.

Всё ясно? Тогда за дело…

Запуск скрипта с правами root без пользовательского ввода

В ОС семейства Linux файл /etc /sudoers определяет, кто и что может запускать с правами суперпользователя. Давайте модифицируем его так, чтобы ваш пользователь смог вызывать скрипт без необходимости постоянного ввода пароля root. (Но будьте очень осторожны с этим файлом! Очень легко выпилить себя из системы, если вы не знаете, что делаете!)

$ sudo nano /etc/sudoers

Добавим в конец файла новую строку. При этом вы должны точно знать имя своего пользователя (запустите echo $USER, если не уверены):

<your username here> ALL=(ALL:ALL) NOPASSWD: /bin/sh /usr/local/sbin/start_docker.sh

Теперь мы можем запустить сервис Docker с правами root без пользовательского ввода:

$ sudo /bin/sh /usr/local/sbin/start_docker.sh 

Ура, товарищи!

Правильный запуск Docker при загрузке Windows

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

Запустите Планировщик задач Windows и выберите Task Scheduler Library на левой панели. Затем выберите Create Task (создать задачу) на правой панели.

Далее вам предложат отредактировать основные настройки задачи. Дайте вашей задаче понятное название и убедитесь, что остальные настройки соответствуют моим. Важно, чтобы вы выбрали «Запуск с повышенными привилегиями» (Run with highest privileges).

Во вкладке Triggers добавьте новый триггер, который будет запускать задачу сразу же, как только локальный пользователь выполнит вход.

Переключившись на вкладку Actions, создайте новое действие, которое будет запускать bash и сразу же выполнять наш скрипт с ключом -с:

-c "sudo /bin/sh /usr/local/sbin/start_docker.sh"

Обратите внимание, что это нужно делать с повышенными привилегиями, поэтому проверьте галочку Run with highest privileges на вкладке General.

Остальные параметры в основном зависят от индивидуальных предпочтений, но я покажу свои настройки. Если хотите — можете их скопировать. Некоторые параметры питания могут не отображаться, если вы сидите на стационарной машине. Лично я пользуюсь ноутбуком.

Ну вот, всё идёт так, как мы задумали. Если вы на предыдущих этапах еще не запускали Docker, используя команды с повышенными привилегиями, просто щёлкните правой кнопкой мыши по задаче, созданной нами в Планировщике задач, и выберите «Выполнить»! Вот и всё!

Проверьте, что всё работает

Если хотите перестраховаться — перезагрузите свою машину (да, ради этого вам придётся в кое веки закрыть вкладки вашего браузера), запустите bash и введите:

$ docker run --rm hello-world

Если всё пройдёт хорошо, то вы увидите стандартное приветствие Docker’а. Сервис запустится автоматически и прямо в WSL! Мои поздравления!

Закругляемся

Вы только что установили и запустили Docker в WSL. Это означает, что ваши контейнеры теперь могут совместно использовать ​​Ubuntu, уже работающую в вашей системе. Таким образом отпадает необходимость разворачивать новую (виртуализированную) ОС, как это делает обычный Docker для Windows.

Производительность работы Docker в WSL пока [на момент написания оригинальной статьи] оставляет желать лучшего, но по мере развития платформы и выпуска обновлений Windows она будет только улучшаться.

Использованные источники

  1. onomatopellan из GitHub: https://github.com/Microsoft/WSL/issues/2291#issuecomment-383698720
  2. Official Docker Documentation: https://docs.docker.com/install/linux/docker-ce/ubuntu/
  3. cgroupfs-mount: https://github.com/tianon/cgroupfs-mount
  4. Bash Command Line Interface: https://docs.microsoft.com/en-us/windows/wsl/reference

1. Overview

It is now possible to run Docker containers on Windows 10 and Windows Server, leveraging Ubuntu as a hosting base.

Imagine running your own Linux applications on Windows, using a Linux distribution you are comfortable with: Ubuntu!

It is now possible to do so using the power of Docker technology and Hyper-V virtualization on Windows.

screenshot

Originally authored by Mathieu Trudel-Lapierre.


2. Requirements

You will need a 64-bit x86 PC with 8GiB of RAM running Windows 10 or Windows Server, updated to include the Windows 10 Fall Creator update, released October 2017.

You will also need a recent installation of Docker.

Finally, you will need to make sure you have installed a program for decompressing the Ubuntu host container image, e.g. 7-Zip or XZ Utils


3. Install Docker for Windows

Download Docker for Windows from Docker Store.

screenshot

Once downloaded, proceed with the installation steps, and either logout or reboot of your system as indicated by the installer.

screenshot

After reboot, Docker will be started. Docker requires that the Hyper-V feature is enabled, so if necessary will ask you to enable it and restart. Click OK for Docker to enable Hyper-V and restart your system.

screenshot


4. Download the Ubuntu container image

Download the latest Ubuntu container image for Windows from the Canonical Partner Images website

Once downloaded, extract the image, using e.g. 7-Zip, or XZ Utils:

C:\Users\mathi\> .\xz.exe -d xenial-container-hyper-v.vhdx.xz

5. Prepare the container environment

First, create two directories:

screenshot

Create C:\lcow, which will be used as scratch space for Docker while preparing the containers.

screenshot

Also create C:\Program Files\Linux Containers. This is where the Ubuntu container image will live.

You will need to give this folder extra permissions to allow Docker to use the images from it. Run the following Powershell script in an administrator Powershell window:

param(
[string] $Root
)
# Give the virtual machines group full control
$acl = Get-Acl -Path $Root
$vmGroupRule = new-object System.Security.AccessControl.FileSystemAccessRule("NT VIRTUAL MACHINE\Virtual Machines", "FullControl","ContainerInherit,ObjectInherit", "None", "Allow")
$acl.SetAccessRule($vmGroupRule)
Set-Acl -AclObject $acl -Path $Root

Save this file as set_perms.ps1 and run it:

TIP You may need to run ‘Set-ExecutionPolicy -Scope process unrestricted’ to be allowed to run unsigned Powershell scripts.

screenshot

C:\Users\mathi\> .\set_perms.ps1 "C:\Program Files\Linux Containers"
C:\Users\mathi\>

Now, copy the Ubuntu container image .vhdx file that was decompressed at the previous step to uvm.vhdx under C:\Program Files\Linux Containers.


6. More Docker preparation

Docker for Windows requires some pre-release features in order to work with Hyper-V isolation. While these features are not yet available in the Docker CE installation that was done previously, the necessary files can be downloaded from master.dockerproject.org.

screenshot

Retrieve dockerd.exe and docker.exe from master.dockerproject.org, and put the two programs somewhere safe, such as in your own folder. They will be used to start the Ubuntu container in the next step.


7. Run an Ubuntu container on Hyper-V

You’re now ready to start your container. First, open a Command-line prompt (cmd.exe) as Administrator, and start dockerd.exe with the right environment:

C:\Users\mathi\> set LCOW_SUPPORTED=1
C:\Users\mathi\> .\dockerd.exe -D --data-root C:\lcow

Docker already running?
If the Docker installer sets Docker to run automatically at boot, you may need to quit the already running daemon, via its toolbar icon, before running the above commands.

Then, start a Powershell window as Administrator; and run docker.exe, instructing it to pull the image for your container:

C:\Users\mathi\> .\docker.exe pull ubuntu

screenshot

screenshot

screenshot

We can now finally start the container. Run docker.exe again, and tell it to run the new image:

C:\Users\mathi\> .\docker.exe run -it ubuntu

screenshot

Congratulations! You have successfully set up your system to use containers with Hyper-V isolation on Windows, and have run your very own Ubuntu container.


8. Getting help

If you need some guidance getting started with the Ubuntu container images for Hyper-V, or if you get stuck, help is always at hand:

  • Ask Ubuntu
  • Ubuntu Forums
  • IRC-based support

Was this tutorial useful?

Thank you for your feedback.


Что такое 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

Install Docker on Windows Subsystem for Linux v2 (Ubuntu)

The Windows Subsystem for Linux v2 (WSL2) is available in preview for Windows 10 users. WSL2 is a substantial improvement over WSL and offers significantly faster file system performance and full system call capabilities. Which means we can finally run dockerd in WSL!

WSL2 is currently only available as a preview feature through the Windows Insider program. WSL2 requires Windows 10 build 18917 or higher which currently requires the «Fast Ring» of Windows Insider.

If you’re not ready to run a fast ring preview on your dev box, you can download an ISO and experiment with WSL2 in a VM. Windows Insider ISOs are available here:

Setup WSL2

Setup instructions for WSL2 are available here: Make sure to install the Ubuntu distro from the Microsoft Store

Once setup, start a command prompt and run the following command to verify Ubuntu is set to version 2


# Set WSL to default to v2
wsl --set-default-version 2

# check the version
wsl -l -v

# Output should show Ubuntu and version 2
# if not, you can upgrade the distro
# this usually takes 5-10 minutes
wsl --set-version Ubuntu 2

Install Docker

From WSL bash, run the following commands to setup Docker. These are nearly identical to setting up on an Ubuntu VM.


# update the package manager and install some prerequisites (all of these aren't technically required)
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common libssl-dev libffi-dev git wget nano

# create a group named docker and add yourself to it
#   so that we don't have to type sudo docker every time
#   note you will need to logout and login before this takes affect (which we do later)
sudo groupadd docker
sudo usermod -aG docker ${USER}

# add Docker key and repo
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# (optional) add kubectl key and repo
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

# update the package manager with the new repos
sudo apt-get update

# upgrade the distro
sudo apt-get upgrade -y
sudo apt-get autoremove -y

# install docker
sudo apt-get install -y docker-ce containerd.io

# (optional) install kubectl
sudo apt-get install -y kubectl

# (optional) install latest version of docker compose
sudo curl -sSL https://github.com/docker/compose/releases/download/`curl -s https://github.com/docker/compose/tags | \
grep "compose/releases/tag" | sed -r 's|.*([0-9]+\.[0-9]+\.[0-9]+).*|\1|p' | head -n 1`/docker-compose-`uname -s`-`uname -m` \
-o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose

Finalizing setup

Currently, Docker doesn’t auto start, so you have to start the service each time. The below command will patch your .profile to start Docker each time you login.


echo "sudo service docker start" >> ~/.profile

# exit and then restart WSL
exit

Once you exit and restart WSL (just run «wsl» from the command prompt or Windows Run command), Docker should work correctly. To test, run the following command from WSL bash.


docker run -it hello-world

Lagniappe

I prefer WSL to always start in my home directory (~), so I use the following to add that to my .profile


echo "cd ~" >> ~/.profile

Install Azure CLI


# add Azure CLI key and repo
curl -sL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg
CLI_REPO=$(lsb_release -cs)
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ ${CLI_REPO} main" | sudo tee /etc/apt/sources.list.d/azure-cli.list

# update the package manager
sudo apt-get update

# install Azure CLI
sudo apt-get install -y azure-cli

Install dotnet core


# add the dotnet core repo
echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-bionic-prod bionic main" | sudo tee /etc/apt/sources.list.d/dotnetdev.list

# update the package manager
sudo apt-get update

# install dotnet core
sudo apt-get install -y dotnet-sdk-2.2

Installing Docker on WSL 2 with Ubuntu 22.04

Instalando Docker em um WSL 2 com Ubuntu 22.04

Prerequisites

Before start the installation process, make sure you meet the following prerequisites:

  • A Windows 10 operating system with WSL 2 support.
  • WSL 2 enabled.
  • Ubuntu 22.04 installed on WSL 2.

Step 1: Update the system

Before installing Docker, it is a good practice to ensure that all system packages are up to date.
Open the Ubuntu terminal in WSL 2 and run the following command:

sudo apt update && sudo apt upgrade -y

Step 2: Install dependencies

Install the required dependencies for Docker:

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

Step 3: Add Docker GPG Key

Add the official Docker GPG key:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Step 4: Add the Docker Repository

Add the Docker repository to the system:

echo "deb [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

Step 5: Install Docker Engine

Update repositories and install Docker Engine:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Step 6: Add you user to Docker Group

Add your user to the Docker group to avoid the need to use sudo on every Docker command:

sudo usermod -aG docker $USER

Step 7: Check the installation

Close the open terminal on Ubuntu.

Restart WSL via the Windows command line (Powershell).

wsl --shutdown

Access Ubuntu again. Check if Docker was installed correctly on the Ubuntu terminal:

docker --version

You should get a response similar to this:

Docker version 26.1.4, build 5650f9b

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

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows playstation 3 controller driver for windows
  • Просмотр chm файлов в windows 10
  • Создание установочного диска windows на mac
  • Windows 8 configuration в биосе что это
  • Что такое minecraft for windows