- Linux Docker container on Windows Server 2016
- 5 Answers 5
- Как включить подсистему Linux в Windows Server 2016
- Руководство по установке Windows Server
- Установка WSL в Windows Server 2022
- Установка WSL в предыдущих версиях Windows Server
- Включение подсистемы Windows для Linux
- Скачивание дистрибутива Linux
- Извлечение и установка дистрибутива Linux
Linux Docker container on Windows Server 2016
What is the way to run Linux docker container on Windows Server 2016? With Docker for Windows it easy to do in Windows 10. Is the only way to install Docker Toolbox and ignore the build-in containers feature all together?
5 Answers 5
It is possible to use Linux containers on W2016. It’s a bit hacky though. User «Algore» described it here but I’ve copied it into this answer, of course.
- Download «Docker for Windows»: https://docs.docker.com/docker-for-windows/
- Install «Docker for Windows» on Windows 10 Pro.
- Copy C:\Program Files\Docker from the Windows 10 machine to C:\Program Files on your Server 2016 box.
- On the W2016 box run install-windowsfeature hyper-v,containers
- Copy these registry entries to a file and import them on your Server 2016 box (reg import):
—START—
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Docker Inc.\Docker\1.0]
«AppPath»=»\»C:\Program Files\Docker\Docker\Docker for Windows.exe\»»
«BinPath»=»\»C:\Program Files\Docker\Docker\resources\bin\»»
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\DockerService]
«EventMessageFile»=hex(2):43,00,3a,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,\ 00,73,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,2e,00,\ 4e,00,45,00,54,00,5c,00,46,00,72,00,61,00,6d,00,65,00,77,00,6f,00,72,00,6b,\ 00,36,00,34,00,5c,00,76,00,34,00,2e,00,30,00,2e,00,33,00,30,00,33,00,31,00,\ 39,00,5c,00,45,00,76,00,65,00,6e,00,74,00,4c,00,6f,00,67,00,4d,00,65,00,73,\ 00,73,00,61,00,67,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\com.docker.service] «Type»=dword:00000010 «Start»=dword:00000002 «ErrorControl»=dword:00000000 «ImagePath»=hex(2):22,00,43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,\ 6d,00,20,00,46,00,69,00,6c,00,65,00,73,00,5c,00,44,00,6f,00,63,00,6b,00,65,\ 00,72,00,5c,00,44,00,6f,00,63,00,6b,00,65,00,72,00,5c,00,63,00,6f,00,6d,00,\ 2e,00,64,00,6f,00,63,00,6b,00,65,00,72,00,2e,00,73,00,65,00,72,00,76,00,69,\ 00,63,00,65,00,22,00,00,00
«DisplayName»=»Docker for Windows Service»
«ObjectName»=»LocalSystem»
«Description»=»Run Docker for Windows backend service»
—END—
You can add an entry to currentversion\run or a scheduled job if you want docker for windows.exe to start up automatically.
- Restart the computer and run the PowerShell script C:\Program Files\Docker\Docker\Resources\mobylinuxvm.ps1 -Create
Look into this ps1 file and notice that you can set various options. Please refer to these websites:
- Make sure the docker service com.docker.service ( start-service com.docker.service ) is running before you start C:\Program Files\Docker\Docker for Windows.exe
If you are running on server core and don’t have the tray icon, click «change privacy settings» when the notification comes up after it starts to get to settings (or modify the json in programdata)
If you run into issues when trying things and rebuilding, check out the C:\Program Files\Docker\Docker\Resources\forceremovedocker.ps1 file for locations to delete settings such as in C:\programdata . I would advise against running the script as it deletes all docker related things. Just use pieces of it.
Как включить подсистему Linux в Windows Server 2016
27.12.2017
itpro
Linux, Windows Server 2016
Комментариев пока нет
Одним из новшеств Windows Server 2016 версии RedStone 3 (1709) является встроенная поддержка запуска нативных бинарных файлов Linux ELF64. Данный функционал реализуется за счет отдельного компонента Windows Subsystem for Linux (WSL), который обеспечивает нужный слой совместимости. В этой обзорной статье мы покажем, как включить подсистему Windows для Linux в Windows Server 2016 и использовать ее для запуска Linux приложений.
Возможность запуска Linux приложений в Windows ранее была представлена в Windows 10. Эта функция носила название Bash on Windows. Начиная с Windows 10 Fall Creators Update это название более не используется и официально эта подсистема теперь называется WSL — Windows Subsystem for Linux. Кроме того, для ее использования более не нужно переключать ОС в режим разработчика (Developer Mode). WSL доступна как Windows Server, так и в виртуальных машинах Microsoft Azure
Предполагаем, что вы уже скачали и установили релиз Windows Server >= 1709. Это может быть сервер с полноценным GUI или в Core режиме.
Проверить текущую версию ОС можно так:
systeminfo | Select-String «^OS Name»,»^OS Version»
Чтобы проверить, что в вашей версии Windows Server имеется функционал WSL, выполните следующую команду:
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Чтобы включить поддержку подсистемы Linuх, выполните команду:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
После чего сервер нужно перезагрузить.
Далее необходимо скачть архив с адаптированным дистрибутивом Linux. На данный момент Microsoft предлагает поддержку следующих дистрибутивов:
В ближайшем будущем планируется добавить дистрибутивы CentOS и Fedora.
К примеру, с помощью PowerShell по HTTP протоколу, скачаем архив с дистрибутивом Ubuntu:
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile ~/Ubuntu.zip -UseBasicParsing
Размер архива около 200 Мб. Распакуем его:
Expand-Archive ~/Ubuntu.zip ~/Ubuntu
Исходный архив можно удалить:
Для запуска установки дистрибутива достаточно запустить файл:
Запустится мастер установки, который в том числе попросит указать имя пользователя и пароль, который вы будете использовать для доступа к середе Linux (эта учетная запись не связана с Windows и входит в группу sudoers, таким образом ей разрешено использовать команду sudo для установки пакетов)
Запустим обновление дистрибутива:
sudo apt-get update
sudo apt-get upgrade
Чтобы выйти из командой оболочки Linux и вернуться в PowerShell, наберите:
Открыть shell в любой момент можно командой:
Имеется возможность запускать команды Linux из консоли Windows и наоборот. К примеру, в консоли PowerShell можно вывести список файлов в каталоге командой ls. Формат команды должен быть такой:
Чтобы из Linux вызвать команду Windows, формат должен быть такой:
Примечание. Обратите внимание, что при запуске исполняемых файлов Windows нужно обязательно указывать расширение и соблюдать регистр имени оригинального файла.
Нужно отметить, что из Linux можно запускать только те исполняемые файлы Windows, которые описаны в специальной переменной окружения. Чтобы добавить в переменную окружения новый путь, выполните команду:
Теперь можно вызвать любой файл из каталога %WinDir%\system32.
Чтобы передать параметр на вход исполняемого файла, нужно воспользоваться такими конструкциями:
$notepad.exe “C:\temp\test.txt”
$notepad.exe C:\\temp\\test.txt
Все исполняемые файлы в этом случае запускаются в контексте учетной записи, запустившей bash.exe.
Итак, подсистему WSL можно использовать для тестирования, разработки и запуска утилит Linux, недоступных в Windows окружении без необходимости развертывать и настривать отдельную виртуальную машины с Linux.
Предыдущая статья Следующая статья
Руководство по установке Windows Server
Подсистема Windows для Linux (WSL) доступна для установки на Windows Server 2019 (версия 1709) и более поздних версий. В этом руководстве рассматриваются действия по включению WSL на компьютере.
Установка WSL в Windows Server 2022
Теперь Windows Server 2022 поддерживает простую установку WSL с помощью команды:
Теперь вы можете установить все необходимые компоненты для запуска WSL в Windows Server 2022. Для этого введите эту команду в PowerShell от имени администратора или в командной строке Windows и перезапустите компьютер.
Эта команда позволяет включить необходимые дополнительные компоненты, скачать последнюю версию ядра Linux, установить WSL 2 в качестве компонента по умолчанию и установить дистрибутив Linux (по умолчанию Ubuntu).
Из стандартной документации по WSL вы узнаете, как выполнять следующие задачи:
Установка WSL в предыдущих версиях Windows Server
Чтобы установить WSL в Windows Server 2019 (версия 1709+), выполните действия, описанные ниже.
Включение подсистемы Windows для Linux
Перед запуском дистрибутивов Linux в Windows необходимо включить дополнительный компонент «Подсистема Windows для Linux» и перезагрузить компьютер.
Запустите PowerShell от имени администратора и выполните следующую команду:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Скачивание дистрибутива Linux
Инструкции и ссылки для скачивания нужного дистрибутива Linux см. в разделе Скачивание дистрибутивов в статье по выполнению установки вручную.
Извлечение и установка дистрибутива Linux
После загрузки дистрибутива Linux для извлечения его содержимого и установки вручную выполните следующие действия.
- Извлеките содержимое пакета .appx , с помощью PowerShell:
Rename-Item .\Ubuntu.appx .\Ubuntu.zip Expand-Archive .\Ubuntu.zip .\Ubuntu
Add-AppxPackage .\app_name.appx
Сбой установки с ошибкой 0x8007007e. При возникновении этой ошибки система не поддерживает WSL. Убедитесь, что вы используете сборку Windows 16215 или более позднюю версию. Проверьте используемую сборку. Также убедитесь, что WSL включен и ваш компьютер перезагружен после включения этой функции.
3. Добавьте путь к дистрибутиву Linux в переменную PATH в Windows (в этом примере C:\Users\Administrator\Ubuntu ) с помощью PowerShell:
$userenv = [System.Environment]::GetEnvironmentVariable("Path", "User") [System.Environment]::SetEnvironmentVariable("PATH", $userenv + ";C:\Users\Administrator\Ubuntu", "User")
Теперь вы можете запустить дистрибутив из любого пути, введя .exe . Например: ubuntu.exe .