在docker内使用nginx反向代理其他容器
在linux系统中,简单使用nginx反向代理docker中容器提供的服务。
·
在linux系统中,简单使用nginx反向代理docker中容器提供的服务,这里以fastgpt为例。
1.nginx安装
有两种方式,一种通过配置docker-compose.yml文件部署,一种通过命令行部署,这里先用命令行的方式:
docker pull nginx
docker images
通过这两行命令,将nginx映像下载到本地,为方便更改容器内配置文件,现在现在本机创建几个配置文件:nginx.conf, default.conf,最后创建一个名字为logs文件夹,方便后续查看日志,使用命令:
docker run -d -p 80:80 --name nginx nginx
创建一个容器nginx,用于本机配置文件初始化:
docker cp nginx /etc/nginx/nginx.conf 你的路径/nginx.conf
docker cp nginx /etc/nginx/conf.d/default.conf 你的路径/default.conf
现在可以将这个容器删除了:
docker stop nginx
docker rm nginx
创建真正要用的容器,并将本机配置文件映射到容器中:
docker run -d -p 80:80 --name nginx -v 你的路径/nginx.conf:/etc/nginx/nginx.conf -v 你的路径/logs:/var/log/nginx -v 你的路径/default.conf:/etc/nginx/conf.d/default.conf nginx
2.docker 网络配置
docker可通过bridge网络方式连接各个容器,这里可以创建一个新网络,并查看当前网络:
docker network create -d bridge fast
docker network ls
这里我们已经有fastgpt所在的bridge网络,将nginx容器和另外一个提供服务的容器添加到fastgpt网络中,并查看:
docker network connect fastgpt_fastgpt nginx
docker network connect [网络] [容器]
docker network inspect fastgpt_fastgpt

记住提供服务容器的ip。
3.开始配置
修改本地default.conf文件,目前只需在location添加一行代码(或者是ip,有的时候ip不一定能成功:
location / {
proxy_pass http://fastgpt:3000/;
root /usr/share/nginx/html;
index index.html index.htm;
}
重启nginx容器
docker restart nginx
在浏览器中访问localhost便会跳转到你需要的服务。
参考:
更多推荐
所有评论(0)