Docker容器数据卷|Docker容器【八】

admin 2026-03-06 18:18:05 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档阐述了Docker数据卷作为持久化存储机制的核心概念与优势,包括数据独立性与共享能力。通过Nginx案例演示了创建、挂载及清理操作,区分了其与容器文件系统的差异,提供了具操作性的命令指南。文末包含网络安全培训推广信息。 综合评分: 65 文章分类: 云安全,安全培训,软文广告


cover_image

Docker容器数据卷 | Docker容器【八】

原创

北京昊网 北京昊网

北京昊网CTF题解

2026年3月6日 10:38 北京

关注北京昊网公众号,与大家共话网络安全。

八、Docker 数据卷

数据卷(Volume)是 Docker 容器中用于持久化存储数据的一种机制。数据卷是一个特殊的目录,可以绕过容器的联合文件系统(UnionFS),直接存储在主机或其他外部存储设备上;

1、为什么需要数据卷?

容器的默认文件系统有个致命问题:容器删除后,内部数据会完全丢失;

数据卷就像一个 “外接 U 盘”:

它独立于容器存在,容器删了,“U 盘” 里的数据还在;

多个容器可以共用一个 “U 盘”,实现数据共享(比如两个 Nginx 容器共享同一套网页文件);

读写速度比容器内部文件系统快,因为它直接对接宿主机存储;

2、数据卷的作用

持久化数据:容器是临时的,删除容器后,容器内的数据也会丢失。数据卷可以保存数据,即使容器被删除,数据也不会丢失;

共享数据:多个容器可以共享同一个数据卷,实现数据共享;

高性能访问:数据卷直接存储在主机或外部设备上,访问速度比容器内的文件系统更快;

3、数据卷的特点

独立于容器生命周期:数据卷的生命周期 ≠ 容器生命周期。即使挂载它的容器全删了,数据卷依然保存在宿主机上;

支持多种存储后端:不仅能存在宿主机本地,还能对接云存储(如 AWS S3)、网络存储(如 NFS),灵活扩展;

易于备份和迁移:可以直接把数据卷里的数据打包备份,或迁移到其他 Docker 主机,不用管容器;

4、创建数据卷

docker volume create my-data  创建名为“my-data”的数据卷作用:在宿主机上创建一个专门的目录(默认路径是 /var/lib/docker/volumes/my-data/_data),用于存储数据;docker volume ls  # 列出所有已创建的数据卷

5、使用数据卷(核心步骤:挂载到容器)

创建数据卷后,需要把它 “挂载” 到容器的某个目录,让容器能读写里面的数据。有两种常用方式:-v 和 –mount,效果一致,–mount 格式更清晰;

方式 1:用 -v 参数挂载(简洁版)

以 Nginx 容器为例,让网页文件存在数据卷里(创建一个名为 my-nginx 的容器,但是名字冲突了,所以改名字为 my-nginx-2)

docker run -d --name my-nginx-2 -v my-data:/usr/share/nginx/html nginx:latest-v my-data:/usr/share/nginx/html:把名为 “my-data” 的数据卷,挂载到容器内的 /usr/share/nginx/html 目录;my-data:数据卷名称(必须是已创建的);/usr/share/nginx/html:容器内的路径(Nginx 默认存放网页文件的目录);容器启动后,往 /usr/share/nginx/html 写的文件(如 index.html),实际会存在宿主机的 my-data 数据卷里;即使删除 my-nginx 容器,my-data 里的网页文件也不会丢;

停止容器(如果正在运行)docker stop my-nginx-2# 删除容器docker rm my-nginx-2# 删除my-data卷(卷中的数据会被永久删除,确认无需保留再执行)docker volume rm my-data

方式 2:用 –mount 参数挂载(清晰版,推荐)

docker run -d --name my-nginx-2 --mount source=my-data,target=/usr/share/nginx/html nginx:latestsource=my-data:指定数据卷名称(对应 -v 左边的部分);target=/usr/share/nginx/html:指定容器内挂载路径(对应 -v 右边的部分);为什么推荐 --mount:参数名更直观,尤其是后续对接复杂存储(如 NFS)时,更容易扩展参数(比如加 type=nfs 指定存储类型);

6、查看数据卷详情(知道数据存在哪)

想知道数据卷在宿主机的具体存储路径、驱动类型等信息,用 inspect 命令:

docker volume inspect my-data

7、删除数据卷(清理无用数据)

数据卷不会随容器删除而自动删除,需要手动清理:停止容器(如果正在运行)docker stop my-nginx-2# 删除容器docker rm my-nginx-2# 删除my-data卷(卷中的数据会被永久删除,确认无需保留再执行)docker volume rm my-datadocker volume ls注意:只能删除 “未被任何容器挂载” 的数据卷。如果数据卷还挂在容器上,会报错,需要先删除容器再删数据卷;删数据卷会彻底删除里面的数据,操作前务必确认数据无用;

批量清理无用数据卷:如果有很多没挂载的 “孤儿卷”,可以用这个命令一键删除;

docker volume prune  自动删除所有未被使用的数据卷

8、数据卷 vs 容器内文件系统

| | | | | — | — | — | | 特性 | 数据卷(Volume) | 容器内文件系统 | | 数据持久化 | 容器删除后数据保留 | 容器删除后数据丢失 | | 读写性能 | 高(直接对接宿主机存储) | 低(经过容器联合文件系统) | | 多容器共享 | 支持(多个容器可挂载同一卷) | 不支持(容器间无法直接共享) | | 宿主机访问 | 可通过 inspect 找到路径访问 | 需进入容器或用 docker cp 复制 |

| | | | | | — | — | — | — | | | | | |

学网安,找北京昊网,就业有保障,带你冲刺10-40万年薪!

招生要求:

| | | | — | — | | 学历与年龄 | 30岁以下大学本科毕业生(条件优秀可放宽到专科) | | 能力 | 具备基本逻辑思维能力,可耐心排查问题,接受“终身学习“的行业属性 | | 目标 | 明确想从事网络安全相关岗位(如安全运维、渗透测试、安全服 务等 | | 健康 | 身心健康 |

适合人群:

| | | — | | 零基础,转行一族 | | 高校应往届与在校生 | | IT职场转型者 |

北京昊网科技网络安全工程师培训,前沿技能教学 + 项目实训 + 就业全流程服务,从技能打磨到岗位对接一站式赋能。

咨询对接:黎歌|18500324210(同微信)

签约《就业保障服务协议》,未达成协议内就业标准,全额退费。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:北京昊网CTF题解 北京昊网 北京昊网《Docker容器数据卷 | Docker容器【八】》

评论:0   参与:  0