我想在另一个容器前面安装Nginx反向代理。这两个容器将使用以下命令在同一个docker网络上:
docker network create my-net
现在,通常我可以检查容器所在的IP,然后在Nginx配置文件中使用它。我如何做到这一点,这是无缝的?这样我就可以使用一个docker-compose文件,让两个容器在同一个网络上,并正确配置Nginx。
感谢
答案 0 :(得分:1)
我建议使用Automated Nginx reverse proxy for docker containers
nginx-proxy设置一个运行nginx和docker-gen的容器。 docker-gen为nginx生成反向代理配置,并在启动和停止容器时重新加载nginx。
答案 1 :(得分:1)
如果您使用docker-compose,则不需要创建自己的网络,它将创建一个知道同一个撰写文件中所有其他服务的专用网络。例如:
搬运工-compose.yml
version: '2'
services:
php:
image: php5.6
...<snip>...
nginx:
image: nginx:stable-alpine
ports:
- "443:443"
links:
- php
...<snip>...
然后在nginx配置中:
proxy_pass http://php;
您不应该指定&#34;链接&#34;用于nginx compose块中的网络(它应该知道所有服务名称),但是它将有助于定义容器的加载顺序。
默认情况下,Compose会为您的应用设置单个网络。每 服务容器加入默认网络,两者都是 该网络上的其他容器可以访问,并且可以被发现 它们的主机名与容器名相同。