当前位置:   article > 正文

Docker创建Nginx容器,挂载配置conf和静态资源等目录,动态发布_nginx挂载文件目录

nginx挂载文件目录

为什么要把conf目录和静态资源目录配置出来(这里指开发调试阶段,生产阶段要将配置和资源COPY到Nginx容器中)

在开发调试的过程中,经常需要频繁的更改配置文件和打包的前端web文件,这样的话,如果是使用Dockerfile中COPY命令上传相关文件的话,需要反复构建镜像,并重新生成容器,比较麻烦。如果能够将相关需要配置的文件和前端web文件映射到宿主机上进行配置,这样只需要重启容器就可以解决问题了。

第一步 需要运行一个Nginx容器,并导出下一步需要的配置文件

  • 启动一个空的Nginx容器 : 
docker run -d --name nginx-demo nginx

  • 检查容器是否运行成功:
docker ps

第二步 导出配置文件

  • 将需要的配置文件从容器中导出,导出到工作目录(后期需要挂载的目录),工作目录 /Users/sone/ngx-web2,在工作目录下,创建需要的目录文件夹

1.conf 是存放nginx配置文件

2.html是存放web静态资源的

3.logs是映射nginx运行日志的(access.log,error.log)

  •  拷贝容器内nginx默认配置文件到工作目录中的相关文件夹中
  1. docker cp nginx-demo:/etc/nginx/nginx.conf $PWD/conf
  2. docker cp nginx-demo:/etc/nginx/conf.d $PWD/conf

 进入容器找到需要的配置文件和文件夹,使用docker cp命令将其拷贝到之前准备的conf文件夹中

  • 完成拷贝后,停止容器并将其删除

1.停止容器

docker stop nginx-demo

2.删除容器

docker rm nginx-demo

第三步 创建Nginx容器

  1. docker run -d -p 80:80 \
  2. --name nginx-demo \
  3. -v /Users/sone/ngx-web2/html:/usr/share/nginx/html \
  4. -v /Users/sone/ngx-web2/conf/nginx.conf:/etc/nginx/nginx.conf \
  5. -v /Users/sone/ngx-web2/conf/conf.d:/etc/nginx/conf.d \
  6. -v /Users/sone/ngx-web2/logs:/var/log/nginx \
  7. nginx

参数说明:

-d 表示容器在后台运行,防止退出容器后,容器被停止或删除

-p 80:80 映射本机8080端口到容器的80端口

--name nginx-demo 设置容器名称为nginx-demo 

-v 将本地文件挂载到容器的指定目录

第四部 配置nginx.conf

  1. user nginx;
  2. worker_processes auto;
  3. error_log /var/log/nginx/error.log notice;
  4. pid /var/run/nginx.pid;
  5. events {
  6. worker_connections 1024;
  7. }
  8. http {
  9. include /etc/nginx/mime.types;
  10. default_type application/octet-stream;
  11. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  12. '$status $body_bytes_sent "$http_referer" '
  13. '"$http_user_agent" "$http_x_forwarded_for"';
  14. access_log /var/log/nginx/access.log main;
  15. sendfile on;
  16. #tcp_nopush on;
  17. keepalive_timeout 65;
  18. #gzip on;
  19. include /etc/nginx/conf.d/*.conf;
  20. server {
  21. listen 80;
  22. server_name localhost;
  23. location / {
  24. root html;
  25. index index.html index.htm;
  26. }
  27. #error_page 404 /404.html;
  28. # redirect server error pages to the static page /50x.html
  29. #
  30. error_page 500 502 503 504 /50x.html;
  31. location = /50x.html {
  32. root html;
  33. }
  34. location /app/ { # 映射访问url,到静态资源文件下
  35. alias /usr/share/nginx/html/app/dist;
  36. index index.html index.htm;
  37. }
  38. }
  39. }

将前端web打包的内容放到html/app/dist下(这里自己测试放的有点复杂了,也可以根据自己需要配置nginx.conf中的location进行简化)

 配置完成后需要重启nginx容器

  1. docker stop nginx-demo # 先停止nginx-demo容器
  2. docker start nginx-demo # 在启动nginx-demo容器

第五步 访问测试

在浏览器中输入地址: http://localhost:8080/app/dist/item.html

访问效果:

 

到此完成!感谢观看! 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/232397
推荐阅读
相关标签
  

闽ICP备14008679号