在Windows Server 2016上运行Linux docker容器的方法是什么?使用Docker for Windows,在Windows 10中很容易。安装Docker Toolbox并忽略内置容器功能的唯一方法是什么?
答案 0 :(得分:7)
可以在W2016上使用Linux容器。虽然有点hacky。用户“Algore”将其描述为here,但我当然已将其复制到此答案中。
下载“Docker for Windows”:https://docs.docker.com/docker-for-windows/
在Windows 10 Pro上安装“Docker for Windows”。
将{10}从Windows 10计算机复制到Server 2016上的const userPromises = persons.map(user => {
return new Promise((resolve, reject) => {
person.save((error, result) => {
if (error) {
reject(error)
}
resolve(result);
})
})
});
Promise.all(userPromises).then((results) => {
//yay!
//results = [first, second, etc...]
}, (error) => {
//nay!
})
。
在W2016框中运行C:\Program Files\Docker
将这些注册表项复制到文件中并将其导入Server 2016框(reg import):
--- --- START
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 \服务\事件日志\应用程序\ DockerService]
“EventMessageFile”=十六进制(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 \服务\ com.docker.service]
“类型”= DWORD:00000010
“开始”= DWORD:00000002
“ErrorControl”= DWORD:00000000
“的ImagePath”=十六进制(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后端服务”
---结束---
如果您希望dock.exe for windows.exe自动启动,您可以为currentversion \ run或预定作业添加条目。
C:\Program Files
查看此ps1文件,注意您可以设置各种选项。请参考以下网站:
https://docker-saigon.github.io/post/Docker-Beta/
https://jpetazzo.github.io/2013/10/16/configure-docker-bridge-network/
install-windowsfeature hyper-v,containers
(C:\Program Files\Docker\Docker\Resources\mobylinuxvm.ps1 -Create
)正在运行,然后才开始com.docker.service
如果您在服务器核心上运行且没有托盘图标,请在开始进行设置后通知出现时单击“更改隐私设置”(或修改程序数据中的json)
如果您在尝试和重建时遇到问题,请查看start-service com.docker.service
文件,了解要删除C:\Program Files\Docker\Docker for Windows.exe
等设置的位置。我建议不要运行脚本,因为它删除了所有与docker相关的东西。只需使用它。
答案 1 :(得分:5)
根据Stefan Scherer的this,可以在Server 2016上运行Linux容器。说明如下:
在Hyper-V中创建Linux Docker机器
如果您想尝试多种架构,还可以使用docker-machine 创建在Hyper-V中运行的Linux Docker Engine。我准备好了 脚本将设置所有内容,因为存在一些已知问题。
C:\vagrant\scripts\create-hyperv-linux-docker-machine.ps1
此PowerShell脚本创建Docker计算机并更新Docker 引擎到最新,以便Windows Docker客户端能够 与Linux Docker Engine进行通信。
使用Linux Docker计算机
以管理员身份打开PowerShell终端并选择Linux Docker机器
docker-machine env --shell powershell | iex
现在使用
运行第一个busybox容器docker run -it busybox uname -a
答案 2 :(得分:4)
不幸的是,现在无法轻松安装“Docker for Windows”工具。此安装程序提供了一个名为MobyLinux的瘦VM,它允许在Windows Server 2016上运行Linux容器。您可以在Docker论坛上找到hacky install attempt(我没有尝试过)。
作为参考,有一个good discussion关于“Docker for Windows”幕后发生的事情。
答案 3 :(得分:1)
只需在Windows Server 2016上下载并安装Docker https://www.docker.com/docker-windows
如果使用Hyper-V将Windows Server 2016作为VM运行,请务必检查此MS doc https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization
答案 4 :(得分:0)
以下内容适用于 Windows Server 2016 内部版本 14393.693(2017 年 1 月),没有破解方法。
它可能适用于更高/更低的版本,但我尝试在最近更新的 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。