docker 安装 nginx
使用Docker容器运行Nginx并实现反向代理
1.下载镜像
# PS:这里用的是 alipne 轻量级的镜像.
docker pull nginx:alpine
2.先简单的方式运行镜像
docker run -d -p 80:80 --name nginx nginx:alpine
-p 80:80: 将容器的 80 端口映射到宿主机的 80 端口上;-d: 以后台方式运行镜像;--name: 指定容器的名称为 nginx;
3.复制相关配置文件至宿主机
# 复制名称为 nginx 容器中 /etc/nginx/nginx.conf 文件夹到宿主机的 /docker/nginx 路径下
docker cp nginx:/etc/nginx/nginx.conf /docker/nginx
# 复制名称为 nginx 容器中 /etc/nginx/conf.d 文件到宿主机的 /docker/nginx 路径下
docker cp nginx:/etc/nginx/conf.d /docker/nginx
4.修改 Nginx 配置文件,添加反向代理
在 conf.d/default.config 中添加反向代理相关配置:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://172.17.0.1:8090; # 代理服务器ip
5.删除刚刚启动的 Nginx 容器,新启动一个
# 先删除之前启动的 nginx 容器:
docker rm -f nginx
# 执行 -p 替换 --net=host
docker run -d \
-p 80:80 \
--name nginx \
-v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /docker/nginx/conf.d:/etc/nginx/conf.d \
-v /docker/nginx/logs:/var/log/nginx \
nginx:alpine
-p 80:80:将容器的 80 端口映射到主机的 80 端口;-v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf:将容器中的 /etc/nginx/nginx.conf 文件挂载到宿主机中的 /docker/nginx/nginx.conf 文件;-v /docker/nginx/conf.d:/etc/nginx/conf.d:将容器中 /etc/nginx/conf.d 目录挂载到宿主机中的 conf.d 目录下;-v /docker/nginx/logs:/var/log/nginx:将容器中的 /var/log/nginx 目录挂载到宿主机中的 /docker/nginx/logs 目录下, 用以查看 Nginx 日志;

浙公网安备 33010602011771号