docker部署nginx并配置SLL
拉取镜像,默认版本 latest
docker pull nginx
创建路径映射位置
mkdir -p /docker/nginx/
启动临时容器
docker run --name nginx0 -d nginx
复制配置文件等
错误示范,单文件模式
docker cp nginx0:/etc/nginx/nginx.conf /docker/nginx/nginx.conf
docker cp -a nginx0:/usr/share/nginx/html /docker/nginx
docker cp -a nginx0:/etc/nginx/conf.d /docker/nginx/conf.d
正确示范,文件夹模式
docker cp -a nginx0:/etc/nginx /docker/nginx/
docker cp -a nginx0:/usr/share/nginx/html /docker/nginx
docker cp -a nginx0:/var/log/nginx /docker/nginx/logs
删除临时容器
docker rm -f nginx0
docker rm -f nginx
重新映射容器启动
单文件模式
docker run --name nginx -e TZ="Asia/Shanghai" -p 80:80 -p 443:443 --net host \
-v /docker/nginx/html:/usr/share/nginx/html \
-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 \
-v /docker/ssl:/etc/nginx/ssl/ \
--privileged=true -d --restart=always nginx
文件夹模式
docker run --name nginx -e TZ="Asia/Shanghai" -p 80:80 -p 443:443 --net host \
-v /docker/nginx/html:/usr/share/nginx/html \
-v /docker/nginx/nginx:/etc/nginx \
-v /docker/nginx/logs:/var/log/nginx \
--privileged=true -d --restart=always nginx
进入容器
docker exec -it nginx /bin/bash
配置好SSL证书后,重启容器加载配置文件
docker restart nginx
命令解读:
run:启动一个docker容器
name:容器的名称
d: 后台启动
p: 绑定别的端口 -p a:b 将宿主机器的a端口绑定到容器的b端口 -P 为随机绑定到端口
net :绑定的网络 这里配置成host(因为对于容器内部来说也有一个ip如果不配置的话默认用容器的ip,导致访问不到)
v : 挂载的内容 宿主机器的文件夹:容器的文件夹
上面将容器内 /etc/nginx/ssl/ 目录映射到了服务器内 /docker/ssl 目录,证书文件放在/docker/ssl,配置文件要写 /etc/nginx/ssl