绑定到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