docker存储-卷映射

为啥使用卷映射:

nginx不能使用-v目录挂载命令映射容器内部配置文件nginx.conf,会导致nginx镜像启动失败:

原因如下:

-v目录挂载启动时,主机目录默认产生的空文件夹会让容器内部默认的配置文件所在的文件夹也变成空文件夹,则启动时默认找的容器内部的配置文件会导致找不到,容器启动失败

详细原因:

nginx容器内部的配置文件nginx.conf使用-v命令目录挂载到本机并不能成功,原因是在启动容器时使用-v命令将容器内部的nginx.conf配置文件挂载到主机上时,会默认在-v指定的主机的目录位置创建一个空文件夹,而此时空文件夹里没有任何文件,即也没有nginx.conf配置文件,则挂载到容器内部的文件目录下也会导致-v中的容器内部的文件目录下什么文件也没有,那容器启动时使用默认的容器内部目录的配置文件就会导致nginx镜像找不到nginx.conf配置文件,导致启动失败

使用卷映射步骤:

命令:

也是使用-v命令+卷名称:/容器内部目录,会默认在启动时给主机把映射的容器内部目录下的文件都创建一遍,则nginx容器启动时主机内部nginx.conf配置文件不为空,则容器启动成功

卷名称和目录挂载区分:只要-v后边不是跟的./或/开头的都认为是卷名称即卷映射,而不是目录地址即目录挂载

卷在主机默认位置:

/var/lib/docker/volumes/卷名称

如下第一张截图例子:-v ngconf:/etc/nginx,意思是在启动时会在主机创建一份和容器内部/etc/nginx目录下所有相同的文件,卷名称叫ngconf,则这个时候启动的时候主机的nginx.conf文件不为空

如下第3张图及之后图,再去修改容器内部的nginx.conf配置文件,就直接vi修改主机卷下的nginx.conf文件即可

-v目录挂载和卷映射区别:

目录挂载启动时会在主机创建默认空文件夹,卷映射不会创建空文件夹而是以容器内部映射的目录下的文件为准

卷的常用操作:

查询所有卷:docker volume ls

创建一个卷:docker volume create 卷名称

看一个卷的详细信息:docker volume inspect 卷名称

注意:看第2张图,删除一个容器并不会删除卷,比如启动容器app03时创建了ngconf卷,在删除了app03后,ngconf卷依然存在并且可以在下次启动容器时继续使用,即ngconf卷仍然保留着之前的所有改变,即仍然有已经被删除的app03镜像的主机nginx.conf文件添加的hahaha注释

下次再见。。。。。。。。。。。

相关推荐
AOwhisky4 小时前
Redis 学习笔记(第三期):持久化与主从复制
运维·数据库·redis·笔记·学习·云计算
c238565 小时前
Linux C++ 进度条进阶美化与工程化封装
linux·运维·服务器
李小白665 小时前
第四天-WEB服务器基本原理,IIS服务
运维·服务器·前端
2401_834636995 小时前
Nginx 从入门到实战:静态 / 动态站点、PHP 部署与反向代理全解析
运维·nginx·php
爱喝水的鱼丶5 小时前
SAP-ABAP:SAP视图开发入门:四类标准视图的适用场景与创建步骤详解
服务器·数据库·性能优化·sap·abap
程序员酥皮蛋6 小时前
docker基础
docker·容器·eureka
aosky6 小时前
一台电脑配置多个 SSH Key 对应不同的 GitHub 账号
运维·ssh·github
云登指纹浏览器7 小时前
WebDriver反检测技术详解:如何让自动化脚本看起来像真实浏览器
运维·自动化·跨境电商
xmtxz7 小时前
计算机网络基础课程学习心得:从理论抽象到硬核实战的进阶之路
运维·学习
RisunJan8 小时前
Linux命令-pgrep (通过进程名查找进程 ID)
linux·运维