Скоро выйдет новое большое обновление для операционной системы Windows Server, в начале сентября в блоге TechNet вышел небольшой пост об этом, и некоторые ее новые функции порадуют пользователей Docker. Одна из главных новостей заключается в том, что
благодаря технологии Hyper-V, Docker теперь сможет выполнять Linux-контейнеры в Windows, аналогично Hyper-V Windows контейнерам.
LinuxKit: что это?
Для исполнения Linux-контейнеров с помощью Docker требуется минимальное ядро Linux и пользовательское пространство для процессов контейнера. Набор средств LinuxKit был специально разработан Docker для создания надежных, компактных и портативных Linux-подсистем, в которых контейнеры Linux входят в состав платформы.
Ниже используется предварительная версия LinuxKit для Docker-контейнеров Linux, работающих в Windows. Работа над прототипом продолжается, и для его запуска необходима одна из недавно представленных сборок Windows Server Insider или Windows 10 Insider.
Исполнение Linux-контейнеров в Windows
Приведенные ниже инструкции были проверены на сборках 16278 и 16281 Windows 10 и Windows Server Insider соответсвенно.
Перед тем как начать работу, убедитесь, что у вас установлены Docker для Windows (если вы используете Windows 10) или Docker Enterprise Edition (если вы используете Windows Server Insider).
Настройка Docker и LinuxKit
Чтобы получить доступ к предварительной сборке LinuxKit, можно выполнить следующие команды в PowerShell (с правами администратора):
$progressPreference = 'silentlyContinue'
mkdir "$Env:ProgramFilesLinux Containers”
Invoke-WebRequest -UseBasicParsing -OutFile linuxkit.zip https://github.com/friism/linuxkit/releases/download/preview-1/linuxkit.zip
Expand-Archive linuxkit.zip -DestinationPath "$Env:ProgramFilesLinux Containers."
rm linuxkit.zip
Теперь скачайте сборку демона Docker из основной ветви разработки с предварительной версией поддержки контейнеров Linux в Windows:
Invoke-WebRequest -UseBasicParsing -OutFile dockerd.exe https://master.dockerproject.org/windows/x86_64/dockerd.exe
Запустите из установки по умолчанию новый демон Docker, который ожидает передачи данных по отдельному каналу и использует отдельное хранилище:
$Env:LCOW_SUPPORTED=1
.dockerd.exe -D --experimental -H "npipe:////./pipe//docker_lcow" --data-root c:lcow
Тестируем
Запустите Linux-контейнер:
docker -H "npipe:////./pipe//docker_lcow" run -ti busybox sh
Docker только что запустил минимальную виртуальную машину с помощью экземпляра LinuxKit, в котором размещен Linux-контейнер.
Поскольку это одна из первых предварительных версий, ее возможности ограничены, однако она поддерживает базовые команды Docker, такие как pull
и run
.
Что дальше?
Разработка сборок Windows Server Insider и поддержки Linux-контейнеров Docker в Windows находится на ранней стадии. Разработчикам Windows и администраторам серверов будет удобнее работать с Linux-контейнерами Docker в Windows в новом релизе Windows Server. Разработчики смогут исполнять контейнеры Docker для Windows и Linux в одной системе, что упростит сборку и тестирование гетерогенных приложений, состоящих из контейнеров Docker для обеих платформ.
Администраторы, предпочитающие Windows, скоро смогут с легкостью запускать ПО, созданное специально для Linux (например, HAProxy и Redis), используя Linux-контейнеры Docker в Windows. В частности, эти контейнеры облегчат настройку Docker Enterprise Edition и приложения Universal Control Plane (которое использует компоненты, предназначенные специально для Linux) в операционной системе Windows Server.
Надеюсь, что это руководство поможет вам начать собственные эксперименты с LinuxKit.
Автор: stasus