绑定到Windows上的docker socket

在* nix系统上,可以通过执行如下操作来将docker socket从主机绑定到VM上:

docker run -v /var/run/docker.sock:/var/run/docker.sock ...

在Windows主机上运行docker时,是否有同样的方法?


我尝试了各种组合,如:

docker run -v tcp://127.0.0.1:2376:/var/run/docker.sock ...

docker run -v "tcp://127.0.0.1:2376":/var/run/docker.sock ...

docker run -v localhost:2376:/var/run/docker.sock ...

这些都没有工作。

对于Windows下面的Docker似乎工作: -v //var/run/docker.sock:/var/run/docker.sock

正如Docker文档所述 :

如果您在Mac或Windows上使用Docker计算机,则引擎守护程序只能访问您的OS X或Windows文件系统。 Docker机器尝试自动共享您的/Users (OS X)或C:\Users (Windows)目录。 因此,您可以使用以下命令在OS X上挂载文件或目录:

 docker run -v /Users/<path>:/<container path> ... 

在Windows上,使用以下命令装载目录

 docker run -v /c/Users/<path>:/<container path> ... 

所有其他path来自您的虚拟机的文件系统 ,所以如果您想让其他主机文件夹可用于共享,您需要做额外的工作。 在VirtualBox的情况下,您需要将主机文件夹作为VirtualBox中的共享文件夹。 然后,您可以使用Docker -v标志挂载它。

尽pipe如此,你仍然可以使用:

 docker run -v /var/run/docker.sock:/var/run/docker.sock ... 

第一个/var/run/docker.sock引用您的boot2docker虚拟机中的相同path。

例如,当我在Windows机器上使用以下命令运行我自己的Jenkins图像时:

 $ docker run -dP -v /var/run/docker.sock:/var/run/docker.sock alidehghanig/jenkins 

我仍然可以使用典型的docker命令与主机中的Docker Daemon进行通信。 例如,当我在Jenkins容器中运行docker ps时,可以在主机中看到正在运行的容器:

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 65311731f446 jen... "/bi.." 10... Up 10.. 0.0.0.0:.. jenkins