在 Windows Server 2016 上运行 Linux docker 容器的方法是什么?使用适用于 Windows 的 Docker,在 Windows 10 中可以轻松完成。是安装 Docker Toolbox 并同时忽略内置容器功能的唯一方法吗?
5 回答
可以在 W2016 上使用 Linux 容器。虽然有点hacky。用户“ Algore ”在这里对其进行了描述,但我当然已将其复制到此答案中。
下载“Docker for Windows”:https ://docs.docker.com/docker-for-windows/
在 Windows 10 Pro 上安装“Docker for Windows”。
C:\Program Files\Docker
从 Windows 10 机器复制到C:\Program Files
Server 2016 机器上。在 W2016 盒子上运行
install-windowsfeature hyper-v,containers
将这些注册表项复制到一个文件中并将它们导入您的 Server 2016 框(reg import):
---开始---
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] "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"="Run Docker for Windows backend service"
---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/
- 在开始之前确保 docker 服务
com.docker.service
( ) 正在运行start-service com.docker.service
C:\Program Files\Docker\Docker for Windows.exe
如果您在服务器核心上运行并且没有托盘图标,请在开始进入设置后出现通知时单击“更改隐私设置”(或修改programdata中的json)
如果您在尝试和重建时遇到问题,请查看C:\Program Files\Docker\Docker\Resources\forceremovedocker.ps1
文件以查找要删除设置的位置,例如C:\programdata
. 我建议不要运行该脚本,因为它会删除所有与 docker 相关的内容。只需使用它的一部分。
根据Stefan Scherer的说法,可以在 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 尝试(我没有尝试过)。
作为参考,有一个关于“Docker for Windows”幕后发生的事情的很好的讨论。
以下内容适用于 Windows Server 2016 内部版本 14393.693(2017 年 1 月),没有 hacky 变通办法。
它可能适用于更高/更低的版本,但我尝试在最近更新的 Windows Server 2016 版本上进行复制,但它失败了!感觉这个坑必须补!
下载Docker社区版2.0.0.3 2019-02-15
链接: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 上下载并安装 Docker https://www.docker.com/docker-windows
如果您使用 Hyper-V 将 Windows Server 2016 作为 VM 运行,请务必查看此 MS 文档https://docs.microsoft。 com/en-us/虚拟化/hyper-v-on-windows/用户指南/嵌套虚拟化