【发布时间】:2017-04-21 03:04:30
【问题描述】:
在 Windows Server 2016 上运行 Linux docker 容器的方法是什么?使用 Docker for Windows 很容易在 Windows 10 中完成。是安装 Docker Toolbox 并同时忽略内置容器功能的唯一方法吗?
【问题讨论】:
-
你解决了这个问题吗?
标签: docker windows-server-2016
在 Windows Server 2016 上运行 Linux docker 容器的方法是什么?使用 Docker for Windows 很容易在 Windows 10 中完成。是安装 Docker Toolbox 并同时忽略内置容器功能的唯一方法吗?
【问题讨论】:
标签: docker windows-server-2016
可以在 W2016 上使用 Linux 容器。虽然有点hacky。用户“Algore”描述了它here,但我当然将它复制到了这个答案中。
下载“Docker for Windows”:https://docs.docker.com/docker-for-windows/
在 Windows 10 Pro 上安装“Docker for Windows”。
将 C:\Program Files\Docker 从 Windows 10 机器复制到 Server 2016 机器上的 C:\Program Files。
在 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 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]
“类型”=dword:00000010
“开始”=dword:00000002
“错误控制”=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 服务"
"ObjectName"="LocalSystem"
"Description"="为 Windows 后端服务运行 Docker"
---结束---
如果您希望 docker for windows.exe 自动启动,您可以在 currentversion\run 或计划作业中添加条目。
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之前确保docker服务com.docker.service(start-service com.docker.service)正在运行
如果你在服务器核心上运行并且没有托盘图标,在开始进入设置后出现通知时点击“更改隐私设置”(或修改programdata中的json)
如果您在尝试和重建时遇到问题,请查看 C:\Program Files\Docker\Docker\Resources\forceremovedocker.ps1 文件以获取删除设置的位置,例如 C:\programdata。我建议不要运行该脚本,因为它会删除所有与 docker 相关的内容。只使用它的一部分。
【讨论】:
根据 Stefan Scherer 的 this,可以在 Server 2016 上运行 Linux 容器。说明如下:
在 Hyper-V 中创建 Linux Docker 机器
如果你想尝试多架构,你也可以使用 docker-machine 创建在 Hyper-V 中运行的 Linux Docker 引擎。我准备了一个 脚本将设置所有内容,因为存在一些已知问题。
C:\vagrant\scripts\create-hyperv-linux-docker-machine.ps1此 PowerShell 脚本创建 Docker 机器并更新 Docker 引擎到最新版本,以便 Windows Docker 客户端能够 与 Linux Docker 引擎通信。
使用 Linux Docker 机器
以管理员身份打开 PowerShell 终端并选择 Linux Docker 机器与
docker-machine env --shell powershell | iex现在运行你的第一个 busybox 容器
docker run -it busybox uname -a
【讨论】:
不幸的是,目前无法轻松安装“Docker for Windows”工具。此安装程序提供了一个名为 MobyLinux 的瘦 VM,它允许在 Windows Server 2016 上运行 Linux 容器。您可以在 Docker 论坛上找到hacky install attempt(我没有尝试过)。
作为参考,有一个 good discussion 关于“Docker for Windows”幕后发生的事情。
【讨论】:
以下内容适用于 Windows Server 2016 内部版本 14393.693(2017 年 1 月),没有任何变通办法。
它可能适用于更高/更低的版本,但我尝试在最近更新的 Windows Server 2016 版本上进行复制,但失败了!感觉这个洞必须补上!
2019-02-15下载Docker社区版2.0.0.3
链接: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 某某已被弃用。单击确定。在此处输入图像描述 退出并重新登录。
如果您尚未安装 Hyper-V,它会提示您自动安装。允许它,让它完成并重新启动。你现在可以走了。如果无法切换到 Linux,您可能需要重新启动。
我已经通过运行多个 Linux 容器对此进行了测试,它运行良好。如果我缺少某些东西,请为他人的利益分享。缺点是您无法更新到更高版本的 Docker。
【讨论】:
只需在 Windows Server 2016 https://www.docker.com/docker-windows 上下载并安装 Docker
如果您使用 Hyper-V 将 Windows Server 2016 作为 VM 运行,请务必查看此 MS 文档 https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization
【讨论】: