Как запустить контейнер докеров Linux на Windows Server 2016? С Docker для Windows это легко сделать в Windows 10. Это единственный способ установить Docker Toolbox и полностью игнорировать встроенные контейнеры?
Контейнер Linux Docker на Windows Server 2016
Ответы (5)
На W2016 можно использовать контейнеры Linux. Хотя это немного взломано. Пользователь "Algore" описал это здесь, но я, конечно, скопировал его в этот ответ.
Загрузите «Docker для Windows»: https://docs.docker.com/docker-for-windows/
Установите «Докер для Windows» в Windows 10 Pro.
Скопируйте
C:\Program Files\Docker
с компьютера с Windows 10 вC:\Program Files
на своем сервере 2016.На коробке W2016 запустить
install-windowsfeature hyper-v,containers
Скопируйте эти записи реестра в файл и импортируйте их в свой сервер Server 2016 (импорт reg):
--- НАЧАЛО ---
Редактор реестра Windows версии 5.00
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Docker Inc.]
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Docker Inc. \ Docker]
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Docker Inc. \ Docker \ 1.0]
"AppPath" = "\" C: \ Program Files \ Docker \ Docker \ Docker для Windows.exe \ ""
"BinPath" = "\ "C: \ Program Files \ Docker \ Docker \ resources \ bin \" "
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ EventLog \ Application \ DockerService]
«EventMessageFile» = шестнадцатеричный (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] «Тип» = двойное слово: 00000010 «Пуск» = двойное слово: 00000002 «ErrorControl» = двойное слово: 00000000 «ImagePath» = шестнадцатеричное (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 для службы Windows"
"ObjectName" = "LocalSystem"
"Description" = "Запустить внутреннюю службу Docker для Windows"
--- КОНЕЦ---
Вы можете добавить запись в currentversion \ run или в запланированное задание, если хотите, чтобы docker для windows.exe запускался автоматически.
- Перезагрузите компьютер и запустите сценарий PowerShell
C:\Program Files\Docker\Docker\Resources\mobylinuxvm.ps1 -Create
Загляните в этот файл ps1 и обратите внимание, что вы можете установить различные параметры. Посетите эти веб-сайты:
https://docker-saigon.github.io/post/Docker-Beta/
https://jpetazzo.github.io/2013/10/16/configure-docker-bridge-network/
- Перед запуском
C:\Program Files\Docker\Docker for Windows.exe
убедитесь, что служба dockercom.docker.service
(start-service com.docker.service
) запущена.
Если вы работаете в ядре сервера и у вас нет значка в трее, нажмите «изменить настройки конфиденциальности», когда появится уведомление после того, как оно начнет переходить к настройкам (или измените json в программных данных)
Если вы столкнетесь с проблемами при попытках и восстановлении, проверьте файл C:\Program Files\Docker\Docker\Resources\forceremovedocker.ps1
, чтобы найти места для удаления настроек, например, в C:\programdata
. Я бы посоветовал не запускать скрипт, так как он удаляет все, что связано с докерами. Просто используйте его кусочки.
Согласно это от Стефана Шерера, можно запустить Контейнеры Linux на сервере 2016. Инструкции следующие:
Создайте машину Linux Docker в Hyper-V
Если вы хотите опробовать мультиархитектуру, вы также можете использовать docker-machine для создания Linux Docker Engine, работающего в Hyper-V. Я подготовил сценарий, который все настроит, так как есть некоторые известные проблемы.
C:\vagrant\scripts\create-hyperv-linux-docker-machine.ps1
Этот сценарий PowerShell создает машину Docker и обновляет Docker Engine до последней версии, чтобы клиент Windows Docker мог взаимодействовать с Linux Docker Engine.
Используйте машину Linux Docker
Откройте терминал PowerShell от имени администратора и выберите машину Linux Docker с
docker-machine env --shell powershell | iex
Теперь запустите свой первый контейнер busybox с
docker run -it busybox uname -a
К сожалению, прямо сейчас невозможно легко установить инструмент «Докер для Windows». Этот установщик предоставляет тонкую виртуальную машину под названием MobyLinux, которая позволяет запускать контейнеры Linux на Windows Server 2016. Вы можете найти попытка взломанной установки (которую я не пробовал) на форумах Docker.
Для справки существует хорошее обсуждение того, что происходит за кулисами с "Docker для Windows ».
Просто загрузите и установите Docker на Windows Server 2016 https://www.docker.com/docker-windows
Если вы запускаете Windows Server 2016 в качестве виртуальной машины с использованием Hyper-V, обязательно проверьте этот документ MS https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/руководствопользователя/вложеннаявиртуализация
Приведенное ниже работало на Windows Server 2016, сборка 14393.693 (январь 2017 г.), без хитрых обходных путей.
Это может работать на более высоких / более низких сборках, но я попытался реплицировать на недавно обновленной версии Windows Server 2016, и это впечатляюще провалилось! Такое ощущение, что эту дыру нужно залатать!
Скачать Docker Community Edition 2.0.0.3 15.02.2019
Ссылка: https://download.docker.com/win/stable/31259/Docker%20for%20Windows%20Installer.exe
Страница со всеми версиями: https://docs.docker.com/docker-for-windows/release-notes/
Просто скачайте / скопируйте файл на машину с Windows Server 2016 и запустите.
Он также может работать в автономном режиме для систем с воздушными зазорами.
Снимите флажок Использовать контейнеры Windows во время установки. По умолчанию флажок не установлен.
После установки вы получите сообщение о том, что windows so и so устарела. Щелкните ОК. введите здесь описание изображения Выйдите и войдите снова.
Если вы не установили Hyper-V, вам будет предложено сделать это автоматически. Разрешите, дайте ему закончить и перезапустите. Теперь тебе хорошо идти. Возможно, вам придется перезагрузить компьютер снова, если не удается переключиться на Linux.
Я тестировал это, запустив несколько контейнеров Linux, все работает нормально. Если я чего-то упускаю, поделитесь этим на благо других. Обратной стороной является то, что вы не можете обновиться до более поздней версии Docker.