所以我有这个docker compose文件
version: "2.1"
services:
nginx:
image: pottava/proxy
ports:
- 8080:80
environment:
- PROXY_URL=http://transmission-container:5080/
- BASIC_AUTH_USER=admin
- BASIC_AUTH_PASS=admin
- ACCESS_LOG=true
transmission:
image: linuxserver/transmission
container_name: transmission-container
ports:
- 5080:9091
restart: unless-stopped
我是docker compose的新手,并首次尝试了它。我需要能够通过http://localhost:8080
访问传输服务,但是nginx返回502。
http://localhost:8080
连接到传输服务?http://localhost:5080
访问,而只能通过http://localhost:8080
访问?答案 0 :(得分:0)
您应该能够使用服务名称和容器端口访问另一个容器:
- PROXY_URL=http://transmission:9091/
如果您不想从locahost访问传输服务,请不要声明主机端口:
ports:
- 9091
答案 1 :(得分:0)
我已经测试了下面的代码,它可以正常工作
version: "2.1"
services:
nginx:
image: pottava/proxy
ports:
- 8080:80
environment:
- PROXY_URL=http://transmission-container:9091/
- BASIC_AUTH_USER=admin
- BASIC_AUTH_PASS=admin
- ACCESS_LOG=true
transmission:
image: linuxserver/transmission
container_name: transmission-container
expose:
- "9091"
restart: unless-stopped
您无需将端口5080
公开给主机,Nginx容器可以直接访问容器端口。代理URL需要指向端口9091
。现在,您无法直接访问传输服务,而需要通过代理服务器。