2016-12-06 16 views
9

Каков способ запуска контейнера докеров Linux в Windows Server 2016? С Docker для Windows это легко сделать в Windows 10. Единственный способ установить Docker Toolbox и игнорировать встроенные контейнеры вместе?Контейнер Linux Docker на Windows Server 2016

+0

вам удалось решить эту проблему? –

ответ

4

К сожалению, на данный момент невозможно легко установить инструмент «Докер для Windows». Этот установщик предоставляет тонкую виртуальную машину под названием MobyLinux, которая позволяет запускать контейнеры Linux на Windows Server 2016. На форумах Docker вы можете найти hacky install attempt (который я еще не пробовал).

Для справки есть good discussion о том, что происходит за кулисами с помощью «Docker for Windows».

+0

Возможно сейчас, хотя и не простая установка. См. Следующий [ответ] (http://stackoverflow.com/a/42978854/444244). – Boggin

+1

@Boggin Это «взломанная попытка установки», о которой я упоминал в своем ответе. –

5

Можно использовать контейнеры Linux на W2016. Хотя это немного хаки. Пользователь «Algore» описал его here, но я скопировал его в этот ответ, конечно.

  • Скачать "Docker для Windows": https://docs.docker.com/docker-for-windows/

  • Установка "Docker для Windows" на Windows 10 Pro.

  • Скопируйте C:\Program Files\Docker с машины Windows 10 на C:\Program Files на ваш сервер 2016.

  • На W2016 окне запуска install-windowsfeature hyper-v,containers

  • Скопируйте эти записи реестра в файл и импортировать их на сервер 2016 года коробка (импорт рег):

--- СТАРТ ---
редактор системного реестра 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 \ ресурсы \ 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.услуга] «Тип» = dword: 00000010 «Пуск» = 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 для службы Windows"
"ObjectName" = "LocalSystem"
"Описание" = "Run Docker для обслуживания серверной ОС Windows"
--- END ---

Вы можете добавить запись в 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/

  • Убедитесь, что служба докер com.docker.service (start-service com.docker.service) работает, прежде чем начать C:\Program Files\Docker\Docker for Windows.exe

Если вы работаете на ядре сервера и дону Если у вас есть значок в трее, нажмите «изменить параметры конфиденциальности», когда уведомление появится после того, как оно начнет получать настройки (или изменить json в данных программы)

Если у вас возникли проблемы при попытке переделать, проверьте файл C:\Program Files\Docker\Docker\Resources\forceremovedocker.ps1 на наличие мест для удаления настроек, таких как C:\programdata. Я бы посоветовал не запускать сценарий, поскольку он удаляет все связанные с докером вещи. Просто используйте кусочки.

+1

Я выполнил шаги и смогу запустить докер для окон, но по какой-то причине путь bin не подбирается, и я не могу запускать «докер» или «докер-композ» в cmd. Команды не распознаются, если я явно не перейду в папку. Есть идеи? – chvndb

+1

Инструменты CLI - это отдельная установка. Docker Engine [релизы] (https://github.com/docker/docker/releases) и Docker Compose [релизы] (https://github.com/docker/compose/releases) доступны в GitHub. – Boggin

+1

Что вы имеете в виду, отдельно установите? Инструменты CLI находятся прямо там, как часть установки Docker for Windons, в разделе «C: \ Program Files \ Docker \ Docker \ resources \ bin \». В конце я просто добавил папку bin в переменную среды $ PATH. Сейчас работает отлично. – chvndb

4

По this Стефан Шерер его можно запускать контейнеры Linux на сервере 2016. Инструкции:

Создать машину Linux Docker в Hyper-V

Если вы хотите попробовать multi architecture вы также используете докер-машину для создания Linux-Docker Engine, работающего в Hyper-V. Я подготовил сценарий , который будет настраивать все, так как есть некоторые известные проблемы.

C:\vagrant\scripts\create-hyperv-linux-docker-machine.ps1 

Этот скрипт PowerShell создает машину Докер и обновления Docker Engine до последней, так что клиент для Windows Docker способен общаться с Linux Докер Engine.

Используйте машину Linux Docker

Открыть терминал PowerShell в качестве администратора и выберите Docker машину Linux с

docker-machine env --shell powershell | iex 

Теперь запустите первый контейнер BusyBox с

docker run -it busybox uname -a 
Смежные вопросы