一、准备镜像
1. 获取nginx镜像
docker searhc nginx
nginx官方镜像网站
https://hub.docker.com/search?q=nginx&type=image
2. 拉取镜像
docker pull nginx
3. 查看镜像
docker image list
二、临时安装
1. docker启动nginx
docker run \-p 80:80 \--name nginx \-d \nginx
- —name 指定容器名称,此处我指定的是mynginx
- -d 指定容器以守护进程方式在后台运行
- -p 指定主机与容器内部的端口号映射关系,
格式 -p [宿主机端口号]:[容器内部端口],此处我使用了主机8888端口,映射容器8888端口
2. 查看容器
3. 访问
- 本地访问
curl 127.0.0.1
- 能看到返回的HTML代码
4. 为正式nginx做准备
4.1 新建挂载目录
在主机 /mnt | /home 任意一个目录下执行命令创建挂载目录
创建文件夹
mkdir -p /mnt/nginx/{conf.d,html,log,cert}
- conf.d - nginx配置
- html - 存放静态html文件
- log - 存放访问日志
- cert - 存放https的ssl证书
4.2 复制nginx容器内文件
从nginx的docker容器中复制原始配置到主机挂载目录里
docker cp nginx:/etc/nginx/nginx.conf /mnt/nginx/conf/nginx.confdocker cp nginx:/etc/nginx/conf.d/ /mnt/nginx/conf.d/docker cp nginx:/usr/share/nginx/html/ /mnt/nginx/html/docker cp nginx:/var/log/nginx/ /mnt/nginx/logs/
5. 停止容器并删除
docker psdocker stop efdocker rm ef
-
三、正式部署nginx
docker run \--name nginx \-d \-p 80:80 \-p 443:443 \-v /mnt/nginx/nginx.conf:/etc/nginx/nginx.conf \-v /mnt/nginx/log:/var/log/nginx \-v /mnt/nginx/html:/usr/share/nginx/html \-v /mnt/nginx/conf.d:/etc/nginx/conf.d \-v /mnt/nginx/cert:/etc/nginx/cert \nginx:latest
—name 指定容器名称,此处我指定的是mynginx
- -d 指定容器以守护进程方式在后台运行
- -p 指定主机与容器内部的端口号映射关系,
格式 -p [宿主机端口号]:[容器内部端口],此处我使用了主机8888端口,映射容器8888端口
-v 挂载目录,格式 -v 主机目录:容器内目录
表示将主机目录与容器目录之间进行共享,
—privileged=true
容器内部对挂载的目录拥有读写等特权
四、配置nginx
server{listen 80;server_name xxx.gongshu.gov.cn;#charset koi8-r;access_log /var/log/nginx/xxx.gongshu.gov.cn.log main;location /{index index.html index.htm;}}server{listen 443 ssl;server_name xxx.gongshu.gov.cn;ssl_certificate /etc/nginx/cert/gongshu.gov.cn.crt;ssl_certificate_key /etc/nginx/cert/gongshu.gov.cn.key;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;access_log /var/log/nginx/xxx.gongshu.gov.cn.log main;location /{proxy_pass http://127.0.0.1:8080/;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host;}location /nginx{index index.html index.htm;}}
