在*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 ...
这些都没有奏效.
Ale*_*nin 72
对于Docker for Windows,似乎有效: -v //var/run/docker.sock:/var/run/docker.sock 
Ali*_*ani 14
正如Docker文档所述:
如果您在Mac或Windows上使用Docker Machine,则您的Engine守护程序只能访问您的OS X或Windows文件系统.Docker Machine尝试自动共享您的
/Users(OS X)或C:\Users(Windows)目录.因此,您可以使用以下命令在OS X上挂载文件或目录:
docker run -v /Users/<path>:/<container path> ...
在Windows上,使用以下命令安装目录
docker run -v /c/Users/<path>:/<container path> ...
所有其他路径都来自虚拟机的文件系统,因此如果要使其他主机文件夹可用于共享,则需要执行其他工作.对于VirtualBox,您需要将主机文件夹作为VirtualBox中的共享文件夹.然后,您可以使用Docker -v标志安装它.
尽管如此,您仍然可以使用:
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
第一个/var/run/docker.sock引用boot2docker虚拟机中的相同路径.
例如,当我在Windows机器中使用以下命令运行我自己的Jenkins图像时:
$ docker run -dP -v /var/run/docker.sock:/var/run/docker.sock alidehghanig/jenkins
我仍然可以使用典型的docker命令与主机中的Docker守护进程通信.例如,当我docker ps在Jenkins容器中运行时,我可以看到在主机中运行容器:
CONTAINER ID   IMAGE  COMMAND   CREATED  STATUS  PORTS        NAMES
65311731f446   jen... "/bi.."   10...    Up 10.. 0.0.0.0:..  jenkins
要绑定到 Windows 容器,您需要使用管道。
-v \\.\pipe\docker_engine:\\.\pipe\docker_engine
即使它是一个 linux 容器,这在 Windows 10 上也对我不起作用:
-v /var/run/docker.sock:/var/run/docker.sock
但这确实:
-v /usr/local/bin/docker:/usr/bin/docker
我打开的这个问题的解决方案:https : //github.com/docker/for-win/issues/4642
小智 5
它适合我的Windows 10是:
 -v "\\.\pipe\docker_engine:\\.\pipe\docker_engine"
请记住,我正在尝试访问我经常推荐的 portainer,这是一个很棒的应用程序。为此,我使用这个命令:
docker run -d -p 9000:9000 -v "\\.\pipe\docker_engine:\\.\pipe\docker_engine" portainer/portainer 
然后只需转到:
http://localhost:9000/
| 归档时间: | 
 | 
| 查看次数: | 20092 次 | 
| 最近记录: |