Windows Server 2016上的Linux Docker容器
在Windows Server 2016上运行Linux Docker容器的方式是什么? 使用Windows的Docker很容易在Windows 10中完成。是唯一的方法来安装Docker Toolbox并忽略内置的容器function?
不幸的是,现在无法轻松安装“Docker for Windows”工具。 这个安装程序提供了一个名为MobyLinux的精简虚拟机,它允许在Windows Server 2016上运行Linux容器。在Docker论坛上您可以find一个hacky安装尝试 (我没有尝试过)。
作为参考,有关“Docker for Windows”的幕后故事有很好的讨论 。
在W2016上可以使用Linux容器。 这有点哈克,但。 用户“ 阿尔戈尔 ” 在这里描述,但我已经复制到这个答案,当然。
-
下载“Docker for Windows”: https : //docs.docker.com/docker-for-windows/
-
在Windows 10 Pro上安装“Docker for Windows”。
-
将Windows 10计算机上的
C:\Program Files\Docker
复制到您的Server 2016框上的C:\Program Files
。 -
在W2016框中运行
install-windowsfeature hyper-v,containers
-
将这些registry项复制到一个文件,并将它们导入您的服务器2016年框(注册导入):
– -开始 – –
Windowsregistry编辑器版本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 for Windows.exe \“”
“BinPath”=“\”C:\ Program Files \ Docker \ Docker \ resources \ bin \“”
[HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务\事件日志\应用\ 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”=“Windows服务的Docker”
“对象名” =“本地系统”
“Description”=“运行Docker for Windows后端服务”
– -结束 – –
你可以添加一个条目到currentversion \ run或者一个预定的工作,如果你想让docker for 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
之前,请确保com.docker.service
服务com.docker.service
(start-service com.docker.service
)正在运行
如果您在服务器核心上运行并且没有托盘图标,则在开始进入设置(或者修改程序数据中的json)后出现通知时单击“更改隐私设置”
如果在尝试和重build时遇到问题,请查看C:\Program Files\Docker\Docker\Resources\forceremovedocker.ps1
文件以查找要删除设置的位置,如C:\programdata
。 我会build议不要运行脚本,因为它删除所有docker相关的东西。 只是使用它的部分。
根据Stefan Scherer的介绍,可以在Server 2016上运行Linux容器。说明如下:
在Hyper-V中创build一个Linux Docker机器
如果你想尝试多架构,你还可以使用docker-machine来创build一个运行在Hyper-V中的Linux Docker引擎。 我准备了一个脚本,它将设置所有的事情,因为有一些已知的问题。
C:\vagrant\scripts\create-hyperv-linux-docker-machine.ps1
这个PowerShell脚本创build了一个Docker机器,并将Docker Engine更新为最新版本,以便Windows Docker客户机能够与Linux Docker Engine进行通信。
使用Linux Docker机器
以pipe理员身份打开PowerShellterminal,然后selectLinux Docker机器
docker-machine env --shell powershell | iex
现在运行你的第一个busybox容器
docker run -it busybox uname -a