【docker部署nginx,挂载数据卷,配置https】

1、准备nginx镜像

# 运行下面命令 获取最新nginx镜像
docker pull nginx

2、准备挂载文件

#启动一个容器
docker run -d --name nginx nginx
# 拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录($PWD 当前全路径)
docker cp nginx:/etc/nginx/nginx.conf $PWD/conf
docker cp nginx:/etc/nginx/conf.d $PWD/conf
# 在/tmp 下创建文件夹 (自主选择目录)
mkdir nginx
# 在 nginx 下创建html,conf,cert 文件夹
mkdir html \
mkdir conf\
mkdir cert
# 停掉nginx容器,并删除
docker stop nginx
docker rm nginx
# 将ssl 证书放到cert文件夹下
# 将静态文件放置 html文件夹下

3、部署nginx容器

(1)修改nginx.conf文件

server {
    listen 443 ssl;
    server_name yuming.cpm; #你的申请过证书的域名
    ssl_certificate     /etc/nginx/conf.d/certs/xxxx.crt;  
    ssl_certificate_key /etc/nginx/conf.d/certs/xxxx.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;
    location / {
        root  /usr/share/nginx/html;
        index  index.html index.htm;
    }
	error_page   500 502 503 504  /50x.html;
    location = /50x.html {
            root   html;
    }
}

报错信息
SSL: error:0200107B:system library:fopen:Unknown error:fopen
注意事项: 其中ssl_certificate 配置的证书路径为docker容器内部路径,不是数据卷文件路径

(2)运行容器

docker run -d --privileged=true -p 80:80  \
              -p 443:443  \
 --name nginx \
 -v /tmp/nginx/html:/usr/share/nginx/html \
 -v /tmp/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
 -v /tmp/nginx/logs:/var/log/nginx \
 -v /usr/local/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
 -v /tmp/nginx/cert:/usr/local/nginx/cert\
 nginx

说明:
–privileged=true # 容器内被赋予root权限
-v /usr/local/nginx/html:/usr/share/nginx/html # 挂载的静态文件目录
-v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf # 挂载的nginx配置文件目录
-v /usr/local/docker/nginx/logs:/var/log/nginx #挂载nginx日志文件
-v /usr/local/nginx/cert:/usr/local/nginx/cert # ssl证书挂载目录

查看运行结果

docker ps

可以看到成功运行nginx

如未启动成功

#查看容器运行日志
docker logs nginx

出现SSL: error:0200107B:system library:fopen:Unknown error:fopen这种错误,即证书路径有问题,查看上面注意实现。

成果展示

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值