是否可以在 vmware 内部运行 docker?

Ham*_*Zia 29 windows virtualbox vmware-workstation docker

我运行 vmware 工作站以满足我的开发需求,并且必须为 diff 环境维护不同的 VM。

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

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

  2. 我如何将我的应用程序(代码+数据库+web api+ .....)运送/带到生产环境?生产机器需要我们很好地运行docker吗?

请帮助澄清。

更新

VMWare 我的意思是 VMWare 工作站专业版。

gro*_*taj 16

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

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

如果您想将主机的文件夹暴露给 Docker 容器中的服务,您也可能会遇到问题。与 Linux 文件系统相比,Windows 的文件系统在权限粒度方面是有限的,并且某些服务不喜欢这样。(这个问题不是 Docker 特有的)

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

带有 Windows 来宾的 VM可能无法工作,因为 Windows 上的 Docker 使用虚拟化来托管另一个 Linux VM。嵌套虚拟化不受官方支持。


ste*_*red 10

这篇博客详细讨论了如何在 Windows 上通过 VMWare Workstation 使用 Docker。您甚至可以使用 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"
Run Code Online (Sandbox Code Playgroud)

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

choco install -y docker  
choco install -y docker-machine  
choco install -y docker-machine-vmwareworkstation  
Run Code Online (Sandbox Code Playgroud)

创建默认虚拟机

docker-machine --native-ssh create -d vmwareworkstation default  
Run Code Online (Sandbox Code Playgroud)

设置环境变量

docker-machine env | iex
Run Code Online (Sandbox Code Playgroud)

现在你已经准备好开始了。