从容器访问 docker API
Accessing docker API from container
我正在尝试构建一个应用程序来控制 Docker 上为 windows 托管的 docker 个容器。
该应用程序构建在 docker-java 库之上,运行良好。
我试图在 docker 本身上托管此应用程序。托管还可以。问题是,当应用程序尝试连接到 tcp://localhost:2375 以访问 docker 的 api 时,连接失败。
这显然是因为容器中的 localhost 不再指安装 Docker for Windows 的实际主机。
所以我使用显式IP地址从容器(tcp://192.168.0.10:2375)访问docker的api,同样被拒绝连接!
我关闭了防火墙,但问题仍然存在。
我搜索了一下,然后我意识到我必须定义 "hosts" 配置变量才能使用主机的显式 IP 地址访问 docker 的 api。
但是当我尝试设置 "hosts" 配置变量时,docker 说:
"hosts":不能在 Docker 中用于 Windows
那么这是否意味着 Docker 无法为 Windows 托管可以访问其 api 的容器?
虽然我对Windows上的Docker不太熟悉,但我在docker网站上找到了一些介绍。只需在下面尝试。
I WANT TO CONNECT FROM A CONTAINER TO A SERVICE ON HOST.
不过我强烈建议你给Docker上Windows了。
编辑:2018-9-519:55
使用 host.docker.internal 访问主机,如下面的评论建议。
我正在尝试构建一个应用程序来控制 Docker 上为 windows 托管的 docker 个容器。
该应用程序构建在 docker-java 库之上,运行良好。
我试图在 docker 本身上托管此应用程序。托管还可以。问题是,当应用程序尝试连接到 tcp://localhost:2375 以访问 docker 的 api 时,连接失败。
这显然是因为容器中的 localhost 不再指安装 Docker for Windows 的实际主机。
所以我使用显式IP地址从容器(tcp://192.168.0.10:2375)访问docker的api,同样被拒绝连接!
我关闭了防火墙,但问题仍然存在。
我搜索了一下,然后我意识到我必须定义 "hosts" 配置变量才能使用主机的显式 IP 地址访问 docker 的 api。 但是当我尝试设置 "hosts" 配置变量时,docker 说: "hosts":不能在 Docker 中用于 Windows
那么这是否意味着 Docker 无法为 Windows 托管可以访问其 api 的容器?
虽然我对Windows上的Docker不太熟悉,但我在docker网站上找到了一些介绍。只需在下面尝试。
I WANT TO CONNECT FROM A CONTAINER TO A SERVICE ON HOST.
不过我强烈建议你给Docker上Windows了。
编辑:2018-9-519:55
使用 host.docker.internal 访问主机,如下面的评论建议。