Linux контейнер на windows

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

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

Привет, Хабр! Неделю назад я рассказывал вам о новой возможности, которая доступна в предварительных выпусках Docker и Windows Server/Windows 10 — запуск Linux контейнеров c Hyper-V изоляцией, аналогично Windows контейнерам с Hyper-V изоляцией. В этом пошаговом руководстве речь пойдёт про аналогичный запуск контейнеров с Ubuntu в этом окружении.

Введение

Как я уже писал до ката, контейнеры Docker теперь можно запускать в Windows 10 и Windows Server, используя Ubuntu в качестве среды хостинга. Иначе говоря, благодаря совместному использованию технологии Docker и виртуализации Hyper-V в Windows, вы сможете запускать собственные Linux-приложения в Windows, используя – Ubuntu!

Требования

1. Вам понадобится ПК x86 с 64-разрядным процессором и 8 ГБ оперативной памяти, работающий под управлением Windows 10 или Windows Server.

2. Запускать контейнеры Linux в Hyper-V могут только участники программы предварительной оценки Windows. Эта программа позволяет тестировать предварительные выпуски программного обеспечения и будущие версии Windows.

3. Если для вашего развертывания важны стабильность и конфиденциальность (программа предварительной оценки Windows позволяет Microsoft собирать информацию об использовании), лучше дождитесь выхода обновления Windows 10 Fall Creator Update в октябре 2017. В этом выпуске технология Docker с Hyper-V будет доступна без необходимости участия в ней.

4. Вам также понадобится последний выпуск Docker, его можно скачать отсюда: http://dockerproject.org.

5. Наконец, вам нужно убедиться, что вы установили программу для разархивирования образа контейнера-хоста Ubuntu, например, 7-Zip или XZ Utils.

Как присоединиться к программе предварительной оценки Windows

Если вы уже являетесь участником этой программы, переходите к следующему шагу.

I этап:

1. Откройте следующую ссылку в вашем веб-браузере:

https://insider.windows.com/en-us/getting-started/.

2. Чтобы зарегистрироваться, войдите в систему, используя ту же учетную запись Microsoft, которую вы используете для входа в Windows 10, и пройдите по ссылке Register your personal account (Зарегистрируйте свою персональную учетную запись) на странице начала работы с Программой предварительной оценки Windows. Подтвердите согласие с условиями для завершения регистрации.

3. Теперь вам нужно открыть Настройки в меню Start (Пуск) Windows 10, выбрать Updates & Security (Обновления и безопасность), а затем Windows Insider Program (Программа предварительной оценки Windows) в меню слева.

4. В случае необходимости нажмите кнопку Fix me (Исправить), если Windows выдает предупреждение Your Windows Insider Program account needs attention (Ваша учетная запись в Программе предварительной оценки Windows требует внимания).

II этап:

1. На панели Windows Insider Program (Программа предварительной оценки Windows) нажмите Get Started (Начать). Если ваша учетная запись Microsoft не связана с вашей копией Windows 10, войдите в систему при появлении запроса и выберите учетную запись, которую вы хотите связать с установленной копией операционной системы.

2. Теперь вы сможете выбрать, какое содержимое вы хотите получать как участник Программы предварительной оценки Windows. Чтобы обеспечить доступность средств изоляции в Hyper-V, необходимых технологии Docker, выберите Fast (Быстрый). Дважды щелкните Confirm (Подтвердить), затем позвольте Windows перезагрузить ваш компьютер. После перезагрузки вам, скорее всего, придется дождаться завершения установки некоторого количества обновлений, прежде чем перейти к следующему шагу.

Установите Docker для Windows

1. Скачайте Docker для Windows из магазина Docker Store.

2. После скачивания выполните установку и перезагрузите систему, когда появится соответствующий запрос.

3. После перезагрузки запустится Docker. Docker использует функцию Hyper-V, поэтому при необходимости он попросит вас включить ее и выполнить перезагрузку. Нажмите OK, чтобы Docker включил Hyper-V и перезагрузите систему.

Скачайте образ контейнера Ubuntu

1. Скачайте последний образ контейнера Ubuntu для Windows с веб-сайта Canonical Partner Images.

2. Разархивируйте скачанный образ с помощью 7-Zip или XZ Utils:

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

Подготовьте окружение для контейнера

1. Сначала создайте два каталога.

2. Создайте каталог C:\lcow, который будет использоваться как область временных файлов для Docker при подготовке контейнеров.

3. Также создайте каталог C:\Program Files\Linux Containers. В нем будет храниться образ контейнера Ubuntu.

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

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

Сохраните этот файл под именем set_perms.ps1 и запустите его.

СОВЕТ. Возможно, вам нужно будет выполнить команду Set-ExecutionPolicy -Scope process unrestricted, чтобы запускать неподписанные скрипты Powershell.

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

5. Теперь скопируйте файл с образом контейнера Ubuntu (.vhdx), разархивированный на предыдущем шаге, присвойте ему имя uvm.vhdx и поместите в каталог C:\Program Files\Linux Containers.

Дополнительные подготовительные шаги для Docker

1. Docker для Windows требует наличия некоторых возможностей из предварительной версии для работы со средствами изоляции Hyper-V. Эти возможности пока недоступны в установленном ранее Docker CE, но вы можете скачать необходимые файлы с веб-сайта http://master.dockerproject.org.

2. Скачайте файлы dockerd.exe и docker.exe с сайта http://master.dockerproject.org и сохраните в надежном месте, например, вашем собственном каталоге. Они понадобятся для запуска контейнера Ubuntu на следующем шаге.

Запустите контейнер Ubuntu в Hyper-V

1. Теперь вы готовы к запуску своего контейнера. Для начала откройте интерфейс командной строки (cmd.exe) от имени администратора и запустите dockerd.exe в нужной среде.

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

2. Затем откройте окно Powershell от имени администратора и запустите docker.exe, чтобы скачать образ для вашего контейнера.

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

3. Наконец, настало время запустить контейнер. Снова запустите docker.exe и попросите систему развернуть новый образ.

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

Поздравляю! Вы успешно настроили свою систему для работы с контейнерами c Hyper-V изоляцией в Windows и запустили собственный контейнер Ubuntu.

Помощь

Если вам нужна помощь, чтобы начать работу с образами контейнера Ubuntu для Hyper-V или у вас возникли проблемы, поддержка всегда рядом:

  • Сообщество Ask Ubuntu
  • Форумы Ubuntu
  • IRC-поддержка

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

Skip to content

Home/Posts/Linux Containers on Windows Server using LinuxKit

Linux Containers on Windows Server using LinuxKit

Microsoft and Docker earlier launched Docker Enterprise Edition (EE), a Containers-as-a-Service platform, for Windows Server. Windows 10 and Windows Server version 1709 contain several enhancements for Docker customers. It means that you can run Windows and Linux Containers at the same time on a Windows Server Container Host running Windows Server 1709 or Windows 10 and above with the Fall Creators Update (1709).

Running Docker Linux containers on Windows requires a minimal Linux kernel to host the containers. So there is actually one known limitation. When running an LCOW-enabled docker on Windows Server 1709, Linux containers can be started but Windows Containers won’t start.

Protect Your Data with BDRSuite

Cost-Effective Backup Solution for VMs, Servers, Endpoints, Cloud VMs & SaaS applications. Supports On-Premise, Remote, Hybrid and Cloud Backup, including Disaster Recovery, Ransomware Defense & more!

In this guide, I will describe how to run Linux Containers on Windows Server using LinuxKit.

Learn how to Run Linux on Windows with WSL here

Note that I will use Azure Virtual Machines to test Linux Containers. If you want to use Azure, you must create the Container Host using a Dv3 or Ev3 VM size.

Download Banner

Configuring the Environment

First, we need to enable nested virtualization for the virtual machine we are going to use as a Container Host. This can be done through PowerShell. In an elevated PowerShell console, type the following command:

Get-VM “ContainerHost” | Set-VMProcessor -ExposeVirtualizationExtensions $true
Get-VMNetworkAdapter -VMName “ContainerHost” | Set-VMNetworkAdapter -MacAddressSpoofing On

You must now install Hyper-V because Hyper-V will be required even with the new LinuxKit-based approach. Use the following PowerShell command:

> Install-WindowsFeature Hyper-V -IncludeManagementTools -Restart

LinuxKit based approach

Let’s check if Hyper-V is installed by using the following command:

>Get-WindowsFeature Hyper-V |ft InstallState, PostConfigurationNeeded

Hyper-V is installed

As recommended by Docker, to try Linux Containers on Windows Server versions 1709 and above, install the preview Docker package and enable the feature. The preview Docker EE package includes a full LinuxKit system for use when running Docker Linux containers.

Docker Enterprise Edition for Windows Server 2016 (Docker EE) enables native Docker containers on Windows Server 2016. The Docker EE installation package includes everything you need to run Docker on Windows Server 2016 and above versions. In a PowerShell console, type the following commands:

> Install-Module DockerProvider

Linux Containers on Windows Server

After installing the module and the package, check if the Windows Service is running using the following command:

> get-service *docker*

Windows Service is running

Let’s check the Docker version using the following command:

> docker.exe version

Docker version

> Install-Package Docker -ProviderName DockerProvider -RequiredVersion preview

To update the Preview Edition, I will use the Install command in order to reinstall the Preview version with the latest build. Use the –Force parameter if needed:

windows-server

Let’s check the new version. You will notice that the version number has changed. The version number 17.10 means October 2017: “Year”, “Month”.

version number has changed

Now, you can enable the Linux mode with the following commands:

>[Environment]:: SetEnvironmentVariable(“LCOW_SUPPORTED”, “1”, “Machine”)
> Restart-Service Docker
> Get-Service *Docker*

Linux mode

Deploying Linux Containers

Now we can test the Linux containers with a new container based on Ubuntu. Here, I just want to run a very simple Hello-World Linux Container:

> Docker run hello-world

new container based on Ubuntu

This command will pull down the container image called Hello-World from the Docker Hub and run it. Below, I ran just for fun the well-known Linux Container based on Nyan Cat that you can pull from the Docker Hub.

# docker run -it –rm –name nyancat 06kellyjac/nyancat

Linux Container based on Nyan Cat

To be serious, I can create a simple Ubuntu Container using the following command:

> docker run ubuntu

Ubuntu Container

I will check the version of Ubuntu to confirm that I am running a Linux Container:

> docker run -it ubuntu

version of Ubuntu

Done! Now you can work with Linux Containers on a Windows Server host.

To finish, I just want to show you that if you want to run Windows Containers on the same host, it will fail. So, if you want to run Windows Containers side by side with Linux Containers on the same Container host, you must disable LCOW using the following command:

> docker pull microsoft/nanoserver

Windows Containers

After disabling the LCOW, the nano server image has been successfully downloaded:

nano server image

Useful links

Below are some useful links to keep informed about Docker:

  • Announcing LinuxKit: https://blog.docker.com/2017/04/introducing-linuxkit-container-os-toolkit/
  • Docker and Microsoft: https://www.docker.com/microsoft
  • Getting Started with Windows Containers: https://github.com/docker/labs/blob/master/windows/windows-containers/README.md

Conclusion

In this article, I have described how to configure your environment in order to use Linux Containers. As we saw, Windows Server 1709 can run Linux Containers, which can be very useful for your lab and test environments.

The main known limitation is that you can’t run Linux and Windows Containers at the same time on the same Container Host. You must disable the Linux mode to run Windows Containers.

Note: Stay informed and keep updating your Docker version.

Experience modern data protection with the latest version of the BDRSuite Free edition. Try the 30 days free trial here: https://www.bdrsuite.com/vembu-bdr-suite-download/

Related Posts:

Beginners Guide for Microsoft Hyper-V: Top 8 Basic Docker Commands You Should Know – Part 36
Beginners’ Guide for Microsoft Hyper-V: How To Install Docker Container on Windows Server – Part 27
Beginners’ Guide for Microsoft Hyper-V: How to run IIS in Docker Container – Part 38
Beginners’ Guide for Microsoft Hyper-V: Windows Docker Container Networking in Hyper-V – Part 37

Follow our Twitter and Facebook feeds for new releases, updates, insightful posts and more.

Try BDRSuite for Free!

Experience our cost-effective backup solution for VMs, Servers, Endpoints, Cloud VMs, and SaaS applications. Start your 30-day free trial today no credit card required and no feature restrictions!

Nicolas Prigent works as a System Engineer, based in Switzerland with
primary focus on Microsoft technologies. Nicolas is a Microsoft MVP in
Cloud And Datacenter Management with 8 years experience in
administering Windows Servers, Hyper-V and System Center products. He
also received the «PowerShell Heroes 2016» Award. His blog can be
found at www.get-cmd.com. You can follow him on Twitter @PrigentNico
or you can contact him at vembu@get-cmd.com.

Schedule a live demo with one of our product experts

Start your full-featured 30-day free trial

Explore detailed pricing, editions & features

  • Dockerizing MCP – Bringing Discovery, Simplicity, and Trust to the Ecosystem

    Discover the Docker MCP Catalog and Toolkit, a new way to source, use, and scale with MCP tools.

    Read now

  • Securing Model Context Protocol: Safer Agentic AI with Containers

    Learn about the new challenges of MCP security, where many current MCP tools fall short, and how containers help maintain best practices.

    Read now

  • Introducing Docker MCP Catalog and Toolkit: The Simple and Secure Way to Power AI Agents with MCP

    With the Docker MCP Catalog and Toolkit, you can easily discover tools and connect with your favorite MCP clients.

    Read now

  • Simplifying Enterprise Management with Docker Desktop on the Microsoft Store

    Find Docker on the Microsoft Store for simplified installs, updates, and enterprise management with native Intune support and seamless deployment.

    Read now

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

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Когда закончилась поддержка windows vista
  • Windows server 2008 r2 adguard
  • Что делать если пропал bluetooth на ноутбуке windows 10
  • Как использовать календарь в windows 10
  • Bluetooth remote control windows 7