赞
踩
# 运行下面命令 获取最新nginx镜像
docker pull nginx
#启动一个容器 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文件夹下
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容器内部路径,不是数据卷文件路径
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
如未启动成功
#查看容器运行日志
docker logs nginx
出现SSL: error:0200107B:system library:fopen:Unknown error:fopen这种错误,即证书路径有问题,查看上面注意实现。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。