docker - 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 容器代理请求。
解决方案
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
推荐阅读
- android - 在 Android 应用程序中使用 Google 表单
- javascript - 如何告诉 Webpack 什么都不输出?
- python - 如何使用 np.where 检查行级别的条件
- javascript - 如何在 VueJS test-utils parentComponent 中模拟 Vuex 商店
- ios - UIBezierpaths 没有在它们被绘制的地方绘制
- apache - 无法在 apache2 中创建 .htaccess 文件
- dart - 调用 Process.run 时如何加载 .bash_profile?
- python - pubnub asyncio 不发布数据
- docker - 如何使用 docker-compose.yml 为 Drupal 映像绑定挂载?
- javascript - Javascript 和 Ajax 每行 3 个不同的总计算无法正常工作