1、拉取镜像
docker pull nginx
2、启动nginx容器
docker run --restart=always --name=nginx -p 81:80 -d nginx
3、访问测试
访问地址:http://ip+port
4、挂载准备
4.1、宿主机创建挂载目录
mkdir /usr/docker/nginx -p
4.2、复制配置文件到宿主机器
docker cp nginx:/etc/nginx /usr/docker/nginx/conf
docker cp nginx:/usr/share/nginx/html /usr/docker/nginx/html
docker cp nginx:/var/log/nginx /usr/docker/nginx/logs
4.3,创建前端工程挂载目录
这个目录好处在于后面可以在这个目录下创建多个目录用来存放前端文件,比如B段和C段,商家后台和用户后台,每个后台都有自己的登录页,因此就需要在这个目录下创建多个目录用来分组存放前端文件。
mkdir /usr/docker/web -p
命令解释:
- -p:“父目录”一次性创建一个多级目录,自动创建所有不存在的父目录(针对以上的命令,后面在这个父目录挂载到主机下创建的子目录docker都能识别)
4.4、删除之前建立的nginx
docker stop nginx
docker rm nginx
4.5、挂载启动nginx容器
docker run --restart=always --name=nginx -p 81:80 \
-v /usr/docker/nginx/conf:/etc/nginx \
-v /usr/docker/nginx/html:/usr/share/nginx/html \
-v /usr/docker/nginx/logs:/var/log/nginx \
-v /usr/docker/web:/usr/docker/web \
-d nginx
4.6、测试访问
为了更好的验证,容器是已挂载的方式进行启动,我们修改html 下的代码
cd /usr/docker/nginx/html
# 编辑index.html
vim index.html
新增自定义代码:
重启nginx:
docker restart
访问页面:
4.7、验证/usr/docker/web目录
我们将html下的index.html拷贝到/usr/docker/web下,并且配置nginx.conf文件,再重启nginx,
也可以自己上传,自定义的前端工程到/usr/docker/web下
拷贝index.html:
cp /usr/docker/nginx/html/index.html /usr/docker/web
修改nginx.conf:
vim /usr/docker/nginx/conf/conf.d/default.conf
这里default.conf就是nginx的配置文件,被nginx.conf引入了,所以改ng配置只需要配置这个文件就行。
添加配置:location /test { alias /usr/docker/web; index index.html; }
重启nginx容器
docker ps -a
docker restart [容器id]
测试访问:
访问地址:ip+port/test
比如:http://162.14.115.18/test
然后可以试一下 在/usr/docker/web下创建子目录,将index.html页面丢进去,然后再nginx里面重复上面的步骤,配置下看能不能访问。
5,验证配置nginx文件是否正确(可选)
# 进入Nginx容器
docker exec -it [容器id] /bin/bash
#进入容器后检查配置文件是否正确
nginx -t
检查结果如图:
检查结果显示 successful 就可以执行下面命令更新了
# 不重启Nginx重新加载配置文件
nginx -s reload
6、总结
通过docker搭建nginx;
实现自定义目录挂载,方便配置文件的修改;