Docker代理窗口守护进程命名pipe道到Ubuntu容器

环境:

  • 操作系统 :Windows 10 Pro [ 使用Hyper-V ]
  • Docker版本 :17.03.1-ce
  • networking部署机制docker-compose

问题:

我一直在试图从我的Ubuntu Container访问docker守护进程,这使得像这样的查询:[ 哪些不起作用 ]

 curl http://<IP>:2375/containers/<another_node>/stats?stream=0 

它适用于Windows Host ,当我这样做时使用PowerShell:

 irm "http://localhost:2375/..." 

但是,如果我更改localhost到其他任何东西像我的私人IP地址。 没有任何工作 ( 这很好 )。

但是,我想将所有可以在Windows Host上访问的数据转发到Ubuntu Container 。 这是棘手的地方。 一个简单的端口转发像:

 ... ports: - 2375:2375 

不行!

我知道在Linux/Mac Host -> Linux Container ,你可以挂载/var/run/docker.sock文件。 唯一的窗口替代方法是named pipe 。 但是无处可以find一种方法,可以将pipe道安装到Linux Container


只有我提出的解决方法:

我写了一个Node.js服务器,作为一个HTTP代理。 所以当<HOST_IP>:<proxy_port>/endpoint/for/docker/daemon容器点击<HOST_IP>:<proxy_port>/endpoint/for/docker/daemon ,它会对localhost:2375这是Docker守护程序在主机上的位置 )代理该命令。


PS :举报人,我已经看过这个 , 这个和这个 。 他们根本没有解决这个问题,因此它的存在。