首页 > 解决方案 > Docker 链接容器

问题描述

我需要设置 nginx-proxy 容器以使用我的应用程序将请求转发到容器。我使用以下命令来启动容器:

# app
docker run -d -p 8080:2368 \
  --name app \
  app

# nginx
docker run -d -p 80:8080 \
  --name nginx-proxy \
  jwilder/nginx-proxy

但是当我尝试访问服务器上的端口 80 时,我得到ERR_CONNECTION_REFUSED. 我很清楚 nginx 容器转发的不是我想要的端口,因为在服务器端口 8080 上我可以访问该应用程序。我试过network这样使用:

# network
docker network create -d bridge net

# app
docker run -d -p 8080:2368 \
  --name app \
  --network net \
  app

# nginx
docker run -d -p 80:8080 \
  --name nginx-proxy \
  --network net \
  jwilder/nginx-proxy

但结果似乎是一样的。我需要了解如何从服务器端口 80 向我的应用发出 nginx 容器代理请求。

标签: dockernginx

解决方案


VIRTUAL_HOST需要具有应用容器域名的env var 才能让 nginx 代理请求到应用容器。这种方法不需要网络设置或端口转发。这是我想出的工作设置:

# app
docker run -d \
  --name app \
  -e VIRTUAL_HOST=mydomain.com \
  app

# nginx
docker run -d -p 80:80 \
  --name nginx-proxy \
  jwilder/nginx-proxy

推荐阅读