4

我正在尝试从容器内访问 Docker 远程 API,因为我需要启动其他容器。

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

连接被拒绝,我猜是因为 Docker (for Windows) 监听127.0.0.1而不是0.0.0.0.

我尝试更改配置(从 UI 和daemon.json)添加条目:

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

但守护进程无法启动。我怎样才能访问api?

4

3 回答 3

1

您可以如下在窗口中设置 DOCKER_OPTS 并尝试。在 Windows 中,Docker 在虚拟机中运行。因此,您必须通过 ssh 进入 VM 并进行更改。

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

检查它是否适合您。

更新:-要 ssh 进入虚拟机(假设默认是您使用 Docker 工具箱创建的虚拟机名称),请在 Docker 快速启动终端中输入以下命令,

docker-machine ssh default

您可以在此处找到更多详细信息。

于 2017-04-21T07:48:07.837 回答
1

You could link the host's /var/run/docker.sock within the container where you need it. This way, you don't expose the Docker Remote API via an open port.

Be aware that it does provide root-like access to docker.

-v /var/run/docker.sock:/var/run/docker.sock
于 2018-12-13T13:17:51.800 回答
0

您应该使用“tcp://host.docker.internal:2375”从容器连接到主机。请确保您可以 ping “host.docker.internal”地址 https://github.com/docker/for-win/issues/1976

于 2018-08-22T14:47:46.070 回答