docker部署nginx并映射本地目录

你要有一定的nginx和docker基础

思路,将服务器的三个文件夹和nginx容器中的三个文件夹相对应上,其中难点在于conf目录。处理思路:1.随便起一个nginx容器;2.将容器中的配置文件复制到本地;3.删掉容器重建,并映射本地路径 。

目录

前提知识

准备原材料

先要有镜像

随便起个nginx容器

准备三个文件夹

启动容器

结果验证

后续拓展

参考连接


前提知识

容器内有三个路径可以映射,看自己选择要映射某一或几项:

1.静态资源:/usr/share/nginx/html,就是我们存放html,js文件的地方

2.配置文件:/etc/nginx,存放配置文件的地方,这个东西需要把容器里的复制出来

3.日志文件:/var/log/nginx,存放日志的地方

准备原材料

先要有镜像

docker pull nginx

随便起个nginx容器

容器名字姑且叫nginx00,姑且用9004指向容器内的80,这些参数都随意

docker run -d --name nginx00 -p 9004:80 nginx

容器启动后,可以看看服务器的9004端口是否嫩访问到nginx,如果能正常访问就没问题,如果不行,自行解决吧

准备三个文件夹

因为我是要将本地的/home/docker/nginx路径做映射,所以cd到路径下执行

docker container cp nginx00:/etc/nginx .

执行后,本地多了个nginx文件夹,将其改名叫conf

mv nginx conf

将另外两个需要映射的文件夹

mkdir html
mkdir logs

在html路径下,自己vi写个test.html。内容随意,命令自行解决。

这时,你已经准备完毕原材料

docker部署nginx并映射本地目录_第1张图片

启动容器

先把原来的容器铲除掉

docker stop nginx00 #停止
docker rm nginx01 #删除
docker ps -a #看看是不是没了

建新的容器,起名nginx01,还用9004端口,三个路径都映射。

#二者选择一个执行即可
#一行版本
docker run -d -p 9004:80 --name nginx01 -v /home/docker/nginx/html:/usr/share/nginx/html -v /home/docker/nginx/conf:/etc/nginx -v /home/docker/nginx/logs:/var/log/nginx nginx

#折行版本
docker run -d -p 9004:80 --name nginx01 \
-v /home/docker/nginx/html:/usr/share/nginx/html \
-v /home/docker/nginx/conf:/etc/nginx \
-v /home/docker/nginx/logs:/var/log/nginx \
nginx

结果验证

结果验证

后续拓展

如果nginx.conf变化了,该如何reload这个conf文件,莫非只能重启或者重建容器么?目前还没找到好方法。欢迎留言指导~

参考连接

本文主要用于自己的学习记录,其实大家也都能从网上找到,特别感谢这几篇文章

centos7下使用docker安装nginx

docker安装Nginx,映射本地文件

dockerhub nginx官方文档

你可能感兴趣的:(docker记录,nginx记录,docker,nginx,linux)