我正在阅读一个关于docker的好问题 - 答案概述了docker implementation details。我想知道在Windows平台上是否可以做这样的事情。
UPDATE1 :
UPDATE2::
有关如何在Windows上安装docker的信息(无关) - official docs有很好的说明如何使用boot2docker VM设置环境。
答案 0 :(得分:22)
您可以在虚拟机中运行docker。
Vagrant现在已经整合了docker支持。它可以用作提供者或提供者。这是一些有用的链接。
正如seanf在下面的评论中指出的那样,Vagrant的支持被取消了。相反,他们指向boot2docker:
boot2docker是一个基于Tiny Core的轻量级Linux发行版 Linux专门用于运行Docker容器。它完全运行 来自RAM,重约24MB,可在约5s(YMMV)内启动。
官方docker文档包含一个在Vagrant框内安装docker的小指南。 Vagrant是一个很棒的虚拟机管理包装器。该指南适用于Mac / Linux,但您可以在Windows中执行相同的操作:
http://docs.docker.io/en/latest/installation/vagrant/
通过这种方式,您可以在具有不同操作系统的多个系统之间共享docker镜像。
答案 1 :(得分:8)
如果您只是想在Windows的某种容器中部署预先打包的应用程序集,并且注册表和文件访问权限已经虚拟化但没有使用完整的虚拟机映像,那么这些(商业化)沙盒式应用程序可能值得一看:
编辑:块上有一个新的孩子,Spoon supports containers for Windows,实际上看起来很有希望。
答案 2 :(得分:6)
我发现至少与文件系统相关的功能已经安装了Windows(7,8)。可以使用VHD文件(虚拟磁盘)来处理Docker中的“图像”概念。这些映像用于虚拟机,但也可以由Windows直接创建/附加/使用:
diskpart
DISKPART> create vdisk file=c:\base-image.vhd maximum=200 type=expandable
新图像可以叠加在基本图像之上:
DISKPART> create vdisk file=c:\image-2.vhd parent=c:\base-image.vhd
查看有关managing virtual disks的更多信息。
不幸的是,进程轻量级隔离/沙盒可能是不可能的(至少不是简单的),虽然有些方法确实存在(http://www.sandboxie.com/,Google Chrome中的Native Client ...)
答案 3 :(得分:3)
Microsoft正在开发与Docker类似的自己的Hyper-V Container - Azure也支持Docker基础架构。
除此之外,很难给出精确的替代方案,但在Windows方面,我们已经有很长一段时间的App-V虚拟化和沙盒应用程序,因此它们可以运行或流式传输实际安装在特定系统上。我从来没有干涉它,但它似乎能够作为standalone客户端运行,而不需要任何微软通常涉及的错综复杂的服务器基础架构。
从另一个角度来看,Windows使用的磁盘映像格式(VHD)支持标准差异,因此您可以从单个只读操作系统映像轻松运行多个虚拟机,其中每个虚拟机都有一个微小的写入映像来处理差异。这些仍然是完全虚拟的虚拟机。
答案 4 :(得分:2)
我目前还不知道如何在原生窗口上做同样的事情。
我不认为Windows内核是为这种事情而构建的,所以为了支持它,Microsoft必须将功能添加到Windows内核。如果我错了,请有人纠正我。
人们做这种事情的最常见方式是在运行基于Linux的操作系统的Windows中使用VM,并运行其中的所有内容。你也可以使用FreeBSD(Jails)和Solaris(区域)做同样的事情,如果这更像是你的一杯茶。但Docker目前不支持FreeBSD或Solaris,因此您需要使用本机工具。
答案 5 :(得分:2)
答案 6 :(得分:1)
从2016年6月开始,Docker可以在Windows 10主机上运行Microsoft的Hyper-V虚拟化。现在,这是在Windows上运行Docker的首选和“官方”方式。
https://docs.docker.com/engine/installation/windows/
Hyper-V是Type-1-Hypervisor,这意味着docker将运行一层离主机硬件更近,并且执行速度明显快于boot2docker(它使用VirtualBox,一种在主机操作系统内运行的Type-2-Hypervisor)。
docker的性能优势也有下降:启用Hyper-V会阻止Type-2-Hypervisor的硬件虚拟化功能,因此现有的VirtualBox映像不能与VTx一起使用,您可能需要考虑移动其他虚拟化操作系统也是Hyper-V。
Windows 7-8.1主机仍然可以使用boot2docker来运行Docker容器,但Windows上Docker的主要开发重点是“新”Hyper-V-Docker。
答案 7 :(得分:1)
Hyper-V仅适用于Windows Pro。安装费用为110英镑。
或者只需安装Vagrant,安装VirtualBox,安装GIT bash,然后从你的GIT bash终端安装。
git clone git@github.com:danday74/vagrant-docker-skelly.git
cd vagrant-docker-skelly
vagrant up # takes approx 5 mins to create VM
vagrant ssh
docker -v
docker-compose -v
Vagrantfile显示:
1 - 这是一个安装了docker和compose的Xenial VM
2 - 从主机映射到VM的端口为9900-9920
3 - 共享文件夹从主机共享到VM
根据需要调整它。
答案 8 :(得分:0)
我厌倦了与maven docker插件的战斗,所以我想我可以伪造它。这是如何:
使用boot2docker和以下bat文件使它看起来像你本地运行docker。把它放在你的路上。
@set SSH="C:\Program Files (x86)\Git\bin\ssh.exe"
@set RUN_REMOTE='docker %*'
@ %SSH% -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -p 2022 -i %HOMEPATH%/.ssh/id_boot2docker -tt docker@localhost %RUN_REMOTE%
ssh.exe来自msys-git包,它与boot2docker捆绑在一起。 我很确定这个解决方案有一些注意事项,但它对我来说非常有用。 把这个文件放在你的路径上,然后把它放在你的叔叔身上。