ree*_*h11 6 curl docker docker-compose
我在一个docker-compose.yml中有两个容器.两者在同一网络上都是相同的.我已经使用"depends_on"添加了依赖项,我能够ping另一个容器,但curl无效.
version: "2.1"
services:
web:
restart: always
build:
context: .
dockerfile: web.dockerfile
ports:
- "9000:8080"
expose:
- "8080"
networks:
- test
nginx_web:
restart: always
build:
context: .
dockerfile: nginx_web.dockerfile
ports:
- "8100:80"
expose:
- "80"
depends_on:
- web
networks:
- test
networks:
test:
Run Code Online (Sandbox Code Playgroud)
当我尝试从nginx_web容器ping到web时,它运行正常.但卷曲不起作用.我正进入(状态
curl: (7) Failed to connect to 172.28.0.7 port 8080: Connection refused
Run Code Online (Sandbox Code Playgroud)
当我从主机直接卷曲到9000端口的网络时,它工作正常.
BMi*_*tch 11
在您的 django 应用程序中,将其从侦听 127.0.0.1 更改为侦听 0.0.0.0 的所有接口。Docker 容器拥有自己的网络命名空间,因此您无法访问另一个容器的环回接口。
另外,您的端口不匹配。Django 在 9000 上响应,因此从一个容器到另一个容器,您需要使用端口 9000。到您发布的端口的映射仅发生在 docker 主机上。对于这个用例来说,暴露端口确实没有任何作用。
最后,从您的主机上,您可以反转端口。它是主机上的端口,后面是容器内的端口。所以“8080:9000”。
小智 5
我遇到了同样的问题,当尝试不使用http进行卷发时,我获得了成功。你应该尝试做curl name_of_container:8080/path/to/web/method。这对我有用,因为在docker内部,它不需要SSL。
| 归档时间: |
|
| 查看次数: |
5604 次 |
| 最近记录: |