Docker-nginx数据卷挂载

数据卷(volume)是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。

以Nginx为例,我们知道Nginx中有两个关键的目录:

  • html:放置一些静态资源
  • conf:放置配置文件
    如果我们要让Nginx代理我们的静态资源,最好是放到html目录;如果我们要修改Nginx的配置,最好是找到conf下的nginx.conf文件。
    但遗憾的是,容器运行的Nginx所有的文件都在容器内部。所以我们必须利用数据卷将两个目录与宿主机目录关联,方便我们操作。如图:

    在上图中:
  • 我们创建了两个数据卷:conf、html
  • Nginx容器内部的conf目录和html目录分别与两个数据卷关联。
  • 而数据卷conf和html分别指向了宿主机的/var/lib/docker/volumes/conf/_data目录和/var/lib/docker/volumes/html/_data目录
    这样以来,容器内的conf和html目录就 与宿主机的conf和html目录关联起来,我们称为挂载。此时,我们操作宿主机的/var/lib/docker/volumes/html/_data就是在操作容器内的/usr/share/nginx/html/_data目录。只要我们将静态资源放入宿主机对应目录,就可以被Nginx代理了。

    利用数据卷挂载nginx步骤:

1. 创建数据卷

docker volume create nginx_html

2. 查询数据卷位置

docker volume inspect nginx_html

3.创建容器并指定数据卷,注意通过 -v 参数来指定数据卷

docker run -d --name nginx81 -p 81:80 -v nginx_html:/usr/share/nginx/html nginx

4.在/var/lib/docker/volumes/nginx_html/_data/ 目录下面添加一个静态文件index.html,文件里填写Hello world

5.运行http://服务器ip:81/

效果图:

相关推荐
马猴烧酒.几秒前
【JAVA算法|hot100】堆类型题目详解笔记
java·开发语言·笔记
Drifter_yh几秒前
「JVM」Java 垃圾回收机制全解析:回收算法、分代流转与 G1 收集器底层拆解
java·jvm·算法
啊哈哈哈哈哈啊哈哈6 分钟前
Spring MVC 项目结构学习笔记
java·spring boot·spring·servlet·maven
莫寒清9 分钟前
Spring MVC:MultipartFile 详解
java·spring·mvc
JavaLearnerZGQ10 分钟前
Spring SseEmitter 全面解析与使用示例
java·后端·spring
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧13 分钟前
Jsoup: 一款Java的HTML解析器
java·开发语言·前端·后端·缓存·html
Protein_zmm14 分钟前
【算法基础】位运算、离散化、区间合并
java·算法·spring
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧14 分钟前
JSP, MVC, El, JSTL, MAC
java·开发语言·mvc·mac·jsp
黎雁·泠崖16 分钟前
Java 数据结构与算法:时间空间复杂度 从入门到实战全解
java·开发语言
想不明白的过度思考者19 分钟前
Spring Boot 实战:MyBatis 操作数据库(上)
java·数据库·spring boot·mysql·mybatis