提问人:nico_1512 提问时间:11/7/2023 更新时间:11/7/2023 访问量:33
无法从另一个容器 ping 使用 nginx 公开的 docker 容器
Cannot ping a docker container exposed with nginx from another
问:
我正在尝试通过 nginx url 从一个容器连接到另一个容器。
基本上,我的基础结构如下:我有两个容器(DC1 和 DC2)和一个容器,使这些容器可以从外部访问。
我已经映射了这两个主机来解析我文件中的环回 IP。Nginx
/etc/hosts
127.0.0.1 DC1.local
127.0.0.1 DC2.local
当我尝试通过其 url 从一个容器访问另一个容器时,问题就出现了。
(例如,我运行以访问 DC2 的 bash,我运行并被拒绝连接 (ECONNREFUSED))。docker exec -it DC2 bash
ping http://DC1.local
如前所述,我可以通过在浏览器中键入两个 URL 从外部访问这两个容器。
这是我的文件。docker-compose
version: "2"
services:
# Nginx
nginx:
image: nginx:latest
ports:
- 80:80
restart: unless-stopped
volumes:
- ./nginx/conf/:/etc/nginx/conf.d/:ro
# DC1
DC1:
image: strm/helloworld-http
expose:
- 80
# DC1
DC2:
image: strm/helloworld-http
expose:
- 80
这是我的nginx.conf:
server {
listen 80;
http2 on;
server_name DC1.local;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://DC1:9999/;
}
}
server {
listen 80;
http2 on;
server_name DC2.local;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://DC2:8888/;
}
}
如何通过 URL 将容器 DC2 连接到容器 DC1?http://dc1.local
答: 暂无答案
评论
version: "2"
expose
strm/helloworld-http
proxy_pass http://DC1:80/;
proxy_pass http://DC2:80/;