Windows Server 2016上的Linux Docker容器
在Windows Server 2016上运行Linux Docker容器的方式是什么?使用Windows的Docker很容易在Windows 10中完成。是否只有安装Docker Toolbox并忽略内置容器功能的唯一方法?Windows Server 2016上的Linux Docker容器
不幸的是,现在无法轻松安装“Docker for Windows”工具。这个安装程序提供了一个名为MobyLinux的瘦虚拟机,它允许在Windows Server 2016上运行Linux容器。您可以在Docker论坛上找到hacky install attempt(我没有尝试过)。
作为参考,有一个good discussion关于“Docker for Windows”幕后发生的事情。
现在可能,虽然不是简单的安装。请参阅以下[答案](http://stackoverflow.com/a/42978854/444244)。 – Boggin
@Boggin这是我在回答中提到的“hacky安装尝试”。 –
可以在W2016上使用Linux容器。这有点哈克,但。用户“Algore”描述了它here,但我已经将它复制到此答案中,当然。
下载 “泊坞的Windows”:https://docs.docker.com/docker-for-windows/
在Windows 10安装临 “泊坞的Windows”。
复制
C:\Program Files\Docker
从Windows 10机器到C:\Program Files
在您的服务器2016年框。在W2016箱运行
install-windowsfeature hyper-v,containers
复制这些注册表项到一个文件,并将其导入您的服务器2016箱(REG进口):
--- START ---
Windows注册表编辑器5.00版
[HKEY_LOCAL_MACHINE \ SOFTWARE \泊坞公司]
[HKEY_LOCAL_MACHINE \ SOFTWARE \泊坞公司\泊坞]
[HKEY_LOCAL_MACHINE \ SOFTWARE \泊坞公司\泊坞\ 1.0]
“APPPATH”= “\” C:\ Program Files文件\泊坞\泊坞\泊坞为的Windows.exe \ “”
“BinPath”= “\” C:\ Program Files文件\泊坞窗\泊坞窗\资源\ 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。服务] “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”=“运行Docker for Windows后端服务”
--- END ---
如果您希望docker for windows.exe自动启动,您可以向currentversion \ run或计划作业添加一个条目。
- 重新启动计算机并运行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
。我会建议不要运行该脚本,因为它会删除所有与Docker相关的东西。只需使用它的部分。
我遵循了这些步骤,并且能够运行docker for windows,但由于某些原因bin路径未被拾取,我无法在cmd中运行“docker”或“docker-compose”。除非我明确导航到文件夹,否则不会识别这些命令。有任何想法吗? – chvndb
CLI工具是单独安装的。 Docker Engine [发布](https://github.com/docker/docker/releases)和Docker Compose [发布](https://github.com/docker/compose/releases)在GitHub上提供。 – Boggin
你是什么意思,单独安装?在C:\ Program Files \ Docker \ Docker \ resources \ bin \下,CLI工具就是Docker for Windons安装的一部分。最后,我只是将bin文件夹添加到我的$ PATH环境变量中。现在工作正常。 – chvndb
据this从斯特凡舍雷尔有可能服务器2016年的说明上运行Linux容器:
Hyper-V中
创建一个Linux泊坞窗机如果您想尝试多架构,您还可以使用Docker-machine 来创建在Hyper-V中运行的Linux Docker引擎。我准备了一个 脚本,它将设置所有事情,因为有一些已知问题。
C:\vagrant\scripts\create-hyperv-linux-docker-machine.ps1
这PowerShell脚本创建一个泊坞窗机和更新泊坞窗 引擎为最新以便在Windows泊坞客户端能够 与Linux泊坞引擎通信。
使用Linux泊坞窗机
打开PowerShell的终端作为管理员,并与
docker-machine env --shell powershell | iex
选择了Linux 泊坞窗机现在用
docker run -it busybox uname -a
只需下载并安装Windows Server 2016上的Docker https://www.docker.com/docker-windows
如果您使用Hyper-V作为VM运行Windows Server 2016,请务必检查此MS文档https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization
您是否设法解决此问题? –