2017-04-21 129 views
2

我想从容器内访问Docker远程API,因为我需要启动其他容器。从容器访问码头远程API

主机地址为172.19.0.1,所以我用http://172.19.0.1:2375/images/json获取图像的列表(由主机,http://localhost:2375/images/json按预期工作。

连接被拒绝,我猜是因为码头工人(适用于Windows)侦听。127.0.0.1而不是0.0.0.0

我试图改变配置(无论从UI和daemon.json)添加条目:

"hosts": ["tcp://0.0.0.0:2375"] 

但守护进程无法启动。我如何访问api?

+0

您提到您正在使用Docker for Windows,但未提及您正在使用的容器类型。您是使用Windows容器还是Linux容器? –

回答

1

您可以在Windows中设置DOCKER_OPTS,如下所示并尝试。在Windows中,Docker在VM内运行。所以,你必须进入虚拟机并进行修改。

DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock' 

检查它是否适用于您。

更新: - SSH到虚拟机(假设默认为您已使用泊坞窗工具箱创建虚拟机的名称),在泊坞快速入门终端输入下面的命令,

docker-machine ssh default 

你可以找到更多详细信息here

+0

ssh的地址是什么(或者我怎么能找到它)? – fra

+0

此外,我发现建议反对公开套接字:https://www.lvh.io/posts/dont-expose-the-docker-socket-not-even-to-a-container.html这似乎是行为与DOCKER_OPTS。解决方案是否安全? – fra

+0

请检查更新后的答案 – qwerty