从容器访问docker远程API

时间:2017-04-21 05:35:03

标签: docker docker-api docker-windows

我正在尝试从容器中访问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?

3 个答案:

答案 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