我正在尝试从容器中访问Docker远程API,因为我需要启动其他容器。
主机地址为obj
,因此我使用172.19.0.1
获取图片列表(来自主机,http://172.19.0.1:2375/images/json
按预期工作。
连接被拒绝,我猜是因为Docker(适用于Windows)侦听http://localhost:2375/images/json
而不是127.0.0.1
。
我尝试更改配置(从UI和0.0.0.0
)添加条目:
daemon.json
但守护程序无法启动。我怎样才能访问api?
答案 0 :(得分:1)
您可以在Windows中设置DOCKER_OPTS,如下所示。在Windows中,Docker在VM内部运行。因此,您必须ssh进入VM并进行更改。
DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'
检查它是否适合您。
更新: - 要进入虚拟机(假设默认是您使用Docker工具箱创建的虚拟机名称),请在Docker快速入门终端中输入以下命令,
docker-machine ssh default
您可以找到更多详情here。
答案 1 :(得分:0)
您应该使用“ tcp://host.docker.internal:2375”从容器连接到主机。请确保您可以ping通“ host.docker.internal”地址 https://github.com/docker/for-win/issues/1976
答案 2 :(得分:0)
您可以在需要的容器内链接主机的/var/run/docker.sock。这样,您就不会通过开放的端口公开Docker Remote API。
请注意,它确实提供了类似于docker的root用户访问权限。
-v /var/run/docker.sock:/var/run/docker.sock