一、部署Nginx
安装与运行
#拉取nginx
docker pull nginx #直接拉取laster版本
为挂载做准备
#创建文件夹
mkdir -p nginx/{conf/conf.d,ssl,html,logs}
#挂载配置文件,就是把装有docker宿主机上面的nginx.conf配置文件映射到启动的nginx容器里面,首先准备好nginx.conf 和default.conf
[root@localhost conf]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7df3d20adad0 nginx "/docker-entrypoint.…" 12 hours ago Up 12 hours 0.0.0.0:8081->80/tcp testnginx
99376ac7992c minio/minio "/usr/bin/docker-ent…" 45 hours ago Up 12 hours 0.0.0.0:9000->9000/tcp minio
[root@localhost conf]# docker cp 7df3d20adad0:/etc/nginx/nginx.conf /data/docker/nginx/conf/nginx.conf
[root@localhost conf]# docker cp 7df3d20adad0:/etc/nginx/conf.d/default.conf /data/docker/nginx/conf/conf.d/default.conf
# 准备完后,可以关闭这个容器
[root@localhost /]# docker stop 7df3d20adad0 #停止容器
[root@localhost /]# docker rm 7df3d20adad0 6817bbb1c6c3 #删除容器
知识储备
--detach 或者 -d #容器后台运行
--privileged #container内的root拥有真正的root权限,privileged启动的容器,可以看到很多host上的设备,并且可以执行mount
-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v /宿主机路径:容器内路径 #指定路径挂载
#一旦这个设定了容器权限,容器对我们挂载出来的内容就有限定了
#只要看到ro就说明这个路径只能通过宿主机来改变,容器内部是无法操作的
ro #只读 readonly
rw #可读可写 readwrite
运行容器
[root@localhost /]# docker run -p 80:80 -p 443:443 --name nginx \
> -d --restart=always \
> -v /data/docker/nginx/html:/usr/share/nginx/html:rw \
> -v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf/:rw \
> -v /data/docker/nginx/conf/conf.d/:/etc/nginx/conf.d/:rw \
> -v /data/docker/nginx/logs:/var/log/nginx/:rw \
> -v /data/docker/nginx/ssl:/ssl/:rw \
> nginx
访问80端口
- html文件夹下的内容为空,所以如下
- html下创建一个简单页面
[root@localhost /]# cd /data/docker/nginx/html
[root@localhost html]# ls
[root@localhost html]# vim index.html
# vim 命令进入文件
# 进入后直接 i 插入信息
# 改好内容,按esc 退出编辑状态
# :q 退出不保存 :q! 强制不保存退出
# :wq 保存后退出 :wq! 强制保存后退出
二、配置文件分析
三、问题
问题:nginx.conf配置文件在 /etc/nginx/ 下面,vi或者vim命令没有用
#vim
root@7df3d20adad0:/etc/nginx/conf.d# vi default.conf
bash: vi: command not found
root@7df3d20adad0:/etc/nginx/conf.d# vim default.conf
bash: vim: command not found
#原因:启动后直接进入容器,nginx容器内默认没有vim编辑器,先安装vim
#解决方式
apt-get update
apt-get install vim
$ docker run -it -p 80:80 -p 443:443 -v /etc/letsencrypt:/etc/letsencrypt -v /usr/www:/usr/www --name nginx80 --restart=always nginx bash
四、参考链接
- Nginx 配置详解
https://www.runoob.com/w3cnote/nginx-setup-intro.html
-nginx下证书配置 nginx 下 配 置 CA 认 证
ht tps://www.cnblogs.com/lzcys8868/p/6281932.html
-Nginx server之Nginx添加ssl支持
https://www.cnblogs.com/chjbbs/p/6802923.html
- openssl 证书操作
https://www.cnblogs.com/lost-1987/articles/3268140.html
转发大神链接
-docker nginx 安装和简单配置 https://blog.csdn.net/acsiont/article/details/104113480