Fac*_*ree 4 rest docker docker-machine
我有两个应用程序,其中一个具有另一个使用的RESTful接口.两者都在同一台机器上运行.
应用程序A在docker容器中运行.我正在使用命令行运行它:
docker run -p 40000:8080 --name AppA image1
Run Code Online (Sandbox Code Playgroud)
当我在docker容器外测试应用程序B时(换句话说,在它被docker化之前)应用程序B成功执行所有RESTful请求并接收响应而没有问题.
不幸的是,当我在一个容器中进行dockerize并运行Application B时:
docker run -p 8081:8081 --name AppB image2
Run Code Online (Sandbox Code Playgroud)
每当我尝试向应用程序A发送RESTful请求时,我都会得到以下信息:
Connect to localhost:40000 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused
Run Code Online (Sandbox Code Playgroud)
当然,我也尝试使用我的机器的IP地址连接应用程序B. 当我这样做时,我得到以下失败:
Connect to 192.168.1.101:40000 failed: No route to Host
Run Code Online (Sandbox Code Playgroud)
以前有没有人见过这种行为?是什么原因导致应用程序与docker容器外的另一个dockerized应用程序完美地通信,一旦它本身停靠,就无法与同一个dockerized应用程序通信?
有人请指教......
只需将B链接到A docker run -p 8081:8081 --link AppA --name AppB image2,即可使用以下方式访问REST服务AppA:8080.
原因是Docker容器在其自己的子网上运行(通常为172.17.0.0-255),并且它们无法访问主机所在的网络.也是localhost容器本身,而不是主机.
| 归档时间: |
|
| 查看次数: |
5464 次 |
| 最近记录: |