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 :举报人,我已经看过这个 , 这个和这个 。 他们根本没有解决这个问题,因此它的存在。
- Docker,Django和Selenium – Selenium无法连接
- 设置为Windows防火墙允许Docker for Windows共享驱动器
- 错误:在文件'./docker-compose.yml'中,服务'build'必须是映射而不是string
- Docker – 具有自定义conf的nginx
- 如何让PHP-CLI容器在不需要任何PHP脚本的情况下运行?
- 如何从不同的容器中使用php&nodejs
- 将Django连接到现有的Docker Postgres容器
- 将docker机器存放在D盘:而不是C:\ Users \ … windows 7中
- 在FROM之后,Dockerfile不会更改RUN