nginx 作为一款优秀的反向代理软件,我是特别喜欢使用的。但之前没使用 docker 的时候,都是使用服务器本地的 nginx。这次计划使用 docker 上的 nginx 来进行配置。下面就记录一下配置的过程。
本次配置的环境如下
| 服务器 | Centos 8.x |
|---|---|
| docker | 19.03.13 |
安装 docker nginx
docker pull nginx
创建需要挂载的目录
# 创建 conf.d 目录与 logs 目录mkdir -p /home/docker_data/nginx/{conf.d,logs}# 给予访问权限chmod -R 777 /home/docker_data/nginx
复制配置文件
先创建一个任意的 nginx 容器
docker run -d --name nginx nginx
将 nginx 容器内的配置文件 cp 一份到 宿主机
# 查看容器 iddocker ps -a# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES# 9fdb03b6080e nginx "/docker-entrypoint.…" 11 seconds ago Up 10 seconds 80/tcp nginx# 拷贝容器下的配置至宿主机docker cp 9fdb03b6080e:/etc/nginx/nginx.conf /home/docker_data/nginx/docker cp 9fdb03b6080e:/etc/nginx/conf.d/default.conf /home/docker_data/nginx/conf.d/
删除此 nginx 容器
docker rm -f 9fdb03b6080e
启动 nginx 并挂载配置文件目录
docker run --name nginx -p 80:80 \-v /home/docker_data/nginx/nginx.conf:/etc/nginx/nginx.conf \-v /home/docker_data/nginx/conf.d:/etc/nginx/conf.d \-v /home/docker_data/nginx/logs:/var/log/nginx \--net=host-d nginx
使用 Https 访问
上面的设置,只能通过 http 来进行访问,如果想要使用 https,还需要关联一下证书文件。以及释放 443 端口。
docker run -p 80:80 -p 443:443 \-v /home/docker_data/nginx/nginx.conf:/etc/nginx/nginx.conf \-v /home/docker_data/nginx/conf.d:/etc/nginx/conf.d \-v /home/docker_data/nginx/logs:/var/log/nginx \-v /home/cert:/home/cert \--name nginx \--net=host-d nginx
