从一个 docker 容器到另一个容器的 REST 请求失败
REST request from one docker container to another fails
我有两个应用程序,其中一个有一个 RESTful 接口供另一个使用。两者 运行ning 在同一台机器上。
应用程序 A 运行 在 docker 容器中。我正在 运行 使用命令行设置它:
docker run -p 40000:8080 --name AppA image1
当我在 docker 容器外测试应用程序 B 时(换句话说,在它被 docker 化之前)应用程序 B 成功执行所有 RESTful 请求并毫无问题地接收响应。
不幸的是,当我 dockerize 和 运行 容器中的应用程序 B 时:
docker run -p 8081:8081 --name AppB image2
每当我尝试向应用程序 A 发送 RESTful 请求时,我都会收到以下信息:
Connect to localhost:40000 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused
当然,我也尝试过使用我机器的 IP 地址连接应用程序 B。当我这样做时,出现以下故障:
Connect to 192.168.1.101:40000 failed: No route to Host
有人见过这种行为吗?是什么原因导致与 docker 容器外的另一个 docker 化应用程序完美通信的应用程序在其自身 docker 化后无法与同一个 docker 化应用程序通信? ??
有人请指教...
只需将 B 链接到 A docker run -p 8081:8081 --link AppA --name AppB image2
,即可使用 AppA:8080
.
访问 REST 服务
原因是 Docker 个容器 运行 在其自己的子网(通常为 172.17.0.0-255)上,它们无法访问您的主机所在的网络。另外 localhost
将是容器本身,而不是主机。
我有两个应用程序,其中一个有一个 RESTful 接口供另一个使用。两者 运行ning 在同一台机器上。
应用程序 A 运行 在 docker 容器中。我正在 运行 使用命令行设置它:
docker run -p 40000:8080 --name AppA image1
当我在 docker 容器外测试应用程序 B 时(换句话说,在它被 docker 化之前)应用程序 B 成功执行所有 RESTful 请求并毫无问题地接收响应。
不幸的是,当我 dockerize 和 运行 容器中的应用程序 B 时:
docker run -p 8081:8081 --name AppB image2
每当我尝试向应用程序 A 发送 RESTful 请求时,我都会收到以下信息:
Connect to localhost:40000 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused
当然,我也尝试过使用我机器的 IP 地址连接应用程序 B。当我这样做时,出现以下故障:
Connect to 192.168.1.101:40000 failed: No route to Host
有人见过这种行为吗?是什么原因导致与 docker 容器外的另一个 docker 化应用程序完美通信的应用程序在其自身 docker 化后无法与同一个 docker 化应用程序通信? ??
有人请指教...
只需将 B 链接到 A docker run -p 8081:8081 --link AppA --name AppB image2
,即可使用 AppA:8080
.
原因是 Docker 个容器 运行 在其自己的子网(通常为 172.17.0.0-255)上,它们无法访问您的主机所在的网络。另外 localhost
将是容器本身,而不是主机。