可以在vmware内部运行docker吗?


24

我为开发人员的需求运行vmware工作站,并且必须为差异环境维护不同的VM。

Docker似乎允许在容器中运行差异环境,因此

  1. 我可以在Windows 10 x64 VM内运行docker并使用不同的映像和容器来开发,构建和测试代码吗?(请记住,当Docker使用VirtualBox时,我正在VMware Workstation中运行我的开发环境)

  2. 我该如何将我的应用程序(代码+数据库+ Web API + .....)运送/生产?生产机器是否需要很好地运行docker?

请帮助澄清。

更新资料

VMWare是指VMWare工作站专业版。

Answers:


14

是的,完全有可能在VM中运行Docker。Docker是一种轻量级的虚拟化解决方案,它不对硬件进行虚拟化,因此您不会受到嵌套VM的典型问题的影响。

端口绑定可能有点棘手,因为您必须以某种方式将VMware中的dev-env VM与VirtualBox中的Docker VM连接起来。

如果要将主机的文件夹公开给Docker容器中的服务,也可能会遇到问题。与Linux相比,Windows的文件系统在权限粒度方面受到限制,并且某些服务对此不满意。(此问题不是特定于Docker的)

通常,您的应用程序不会在生产中锁定到Docker。Dockerized服务通过网络与世界通信,这与常规服务通常没有什么不同。但是,考虑到Docker(或更一般地说,云)的设计的应用程序可能对故障更具弹性,并且易于维护。


6

该博客准确地讨论了如何在Windows上将Docker与VMWare Workstation结合使用。您甚至可以使用Windows 7。

https://stefanscherer.github.io/yes-you-can-docker-on-windows-7/

首先为Windows安装Chocolatey软件包管理器(这是一个单行命令)

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

然后安装Docker以使用VMWare工作站

choco install -y docker  
choco install -y docker-machine  
choco install -y docker-machine-vmwareworkstation  

创建一个默认的虚拟机

docker-machine --native-ssh create -d vmwareworkstation default  

设置环境变量

docker-machine env | iex

现在您已经准备好开始。


优秀!感谢您分享。PS:最后一行是针对PowerShell的,没有适用于cmd的“ | iex”
Dmitry Gusarov,

Chocolatey对我来说是新手,这是一个不错的起点:hanselman.com/blog/…–
ccook

1
万一其他人在未阅读链接的情况下尝试了此操作,则“创建默认虚拟机”命令应为:(docker-machine --native-ssh create -d vmwareworkstation default注意缺少“-”)
Neil

2
  1. 是的,您可以在Windows上运行docker。Windows在VMWare上也可以使用。我们在VMWare上的Linux服务器上运行docker。
  2. 最聪明的方法是在生产计算机上也安装docker,但是可以从容器中复制数据。我不建议这样做。
    您可以docker save用来将docker映像保存到文件中。
    我认为值得一提的是,不建议在同一个容器中运行多个应用程序,并且不建议将数据存储在容器中,您应该为此使用卷。

感谢您的回答,但请您澄清一下:“ VMWare上的Windows也可以使用”,但您是说“ VMWare上的Docker也可以使用”吗?
Hamza Ahmed Zia

@HamzaAhmedZia“ VMWare”到底是什么?ESXi的?工作站?具体并编辑您的问题。工作站仅存在于Linux和Windows上。
Ramhound

@Ramhound我的意思是工作站。更新的问题
Hamza Ahmed Zia

@HamzaAhmedZia,因此在工作站的上下文中,此答案的作者表示,您可以在Windows VMWare工作站VM中运行Docker。
Ramhound

@Mikael因为您说不建议从容器中复制数据,您对运送到生产环境的建议是什么?
Hamza Ahmed Zia

0

docker主机(Linux或Windows)之间有一个主要区别:

因此,在Vmware工作站中的Windows docker主机上(在物理Windows上),您具有嵌套的HyperV Linux VM!这不是大问题,请小心启用嵌套虚拟化。

弗朗索瓦


如果在Windows容器模式下并排使用LCoW来运行Windows的Docker,则关于Windows托管HyperV VM的问题是不正确的。它还有其他问题,但是基于Moby Project在Win 10上基于Windows容器的Docker的发展方向,有关基于主机OS的Docker不可知论性的链接文章立场充其量是短视的,但是我沉迷了一周才发现出血边缘仍然在吸血,并且没有退缩到只有前沿的危险水平。在这一点上,它似乎还需要六个月才能准备好用作日常驾驶员。
Tetsujin no Oni

0

运行Docker容器带来了端口绑定问题..!

在虚拟机中运行docker是一个好习惯..架构供您参考

主机操作系统-> VirtualMachine->虚拟机监控程序->服务器操作系统-> Docker

这是一个好习惯吗.. :)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.