侧边栏壁纸
  • 累计撰写 12 篇文章
  • 累计创建 11 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Docker部署Nginx并配置反向代理

bingo
2021-11-10 / 1 评论 / 0 点赞 / 2,392 阅读 / 509 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-12-29,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

首先运行一次容器,拷贝出配置文件,然后第二次正式运行容器,配置挂载目录;配置容器的反向代理需要注意代理ip应该是容器的ip而非服务器ip。

一、Docker安装Nginx并挂载配置文件

  • 下载Nginx镜像
docker pull nginx:<version>
  • 先运行一次容器(为了拷贝配置文件)
docker run -p 80:80 --name nginx \
-v ~/nginx/html:/usr/share/nginx/html \
-v ~/nginx/logs:/var/log/nginx \
-d nginx:<version>
  • 将容器内配置文件拷贝到宿主机中
docker container cp nginx:/etc/nginx ~/nginx/
  • 修改文件名称
mv nginx conf
  • 终止并删除容器
docker stop nginx
docker rm nginx
  • 使用下面命令启动Nginx容器,挂载目录
docker run -p 80:80 --name nginx \
-v ~/nginx/html:/usr/share/nginx/html \
-v ~/nginx/logs:/var/log/nginx  \
-v ~/nginx/conf:/etc/nginx \
-d nginx:<version>
  • 设置自动启动
docker update --restart=always nginx

二、配置Nginx反向代理其他容器

  • 启动需要反向代理的容器
docker start <container>
  • 获取该容器的ip地址
docker inspect <container>
  • 查看IPAddress
    查看容器ip
  • 修改Nginx配置文件
    修改Nginx配置文件
  • 重启Nginx容器
docker stop nginx
docker start nginx

三、改进

之前第二步中配置Nginx反向代理其他容器使用的方式是查看容器ip,在配置文件中写死。发现此方法存在问题,当容器重启后ip会发生变化,使得配置失效,因此采用如下方法改进:

  • 新增自定义docker网桥
docker network create -d bridge network-name
  • 将启动后需要代理的容器和nginx容器连接到该网桥上
docker network connect network-name container-name
  • 将配置文件中的ip用容器名代替
    Docker部署Nginx-修改ip为容器名
  • 重新载入配置文件
# 进入nginx容器
docker exec -it nginx /bin/bash
# 重新载入配置文件
nginx -s reload

参考文章: mall在Linux环境下的部署(基于Docker容器)Docker教程:使用Docker容器运行Nginx并实现反向代理

0

评论区