Docker匿名数据卷实战指南

在本篇博客文章中,我们将探讨 Docker 中匿名数据卷的使用方法。匿名数据卷是 Docker 提供的一种快速实现数据持久化的方式,尤其适合临时存储应用数据而不必担心清理和管理的问题。

什么是匿名数据卷?

匿名数据卷是一种没有指定名称的数据卷,Docker 会为它们自动生成一个唯一的名称。与命名数据卷相比,匿名数据卷不会自动被其他容器发现或重用,因此非常适合用于需要短期存储的应用场景。一旦关联的容器被删除,匿名数据卷通常也会被自动清理(除非特别配置)。

实战案例:匿名数据卷

bash 复制代码
[root@ubuntu2404 ~]#docker volume ls
DRIVER    VOLUME NAME
[root@ubuntu2404 ~]#docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

#利用匿名数据卷创建容器
[root@ubuntu2404 ~]#docker run -d -p 80:80 --name nginx -v /usr/share/nginx/html nginx:1.26 
34851b5dfac7139444067d8c1fd2f812a7f55815fb0d4bb33d286cf99d6d9d45
[root@ubuntu2404 ~]#curl 127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

#查看自动生成的匿名数据卷
[root@ubuntu2404 ~]#docker volume ls
DRIVER    VOLUME NAME
local     9944eebf8b7a11209111e403da8d3094a35f39afe6e1ad72cfc2c8a9b624431d

#查看匿名数据卷的详细信息
[root@ubuntu2404 ~]#docker inspect 9944eebf8b7a11209111e403da8d3094a35f39afe6e1ad72cfc2c8a9b624431d 
[
    {
        "CreatedAt": "2025-08-09T09:51:23+08:00",
        "Driver": "local",
        "Labels": {
            "com.docker.volume.anonymous": ""
        },
        "Mountpoint": "/var/lib/docker/volumes/9944eebf8b7a11209111e403da8d3094a35f39afe6e1ad72cfc2c8a9b624431d/_data",
        "Name": "9944eebf8b7a11209111e403da8d3094a35f39afe6e1ad72cfc2c8a9b624431d",
        "Options": null,
        "Scope": "local"
    }
]

[root@ubuntu2404 ~]#docker inspect --format="{{.Mounts}}" nginx
[{volume 9944eebf8b7a11209111e403da8d3094a35f39afe6e1ad72cfc2c8a9b624431d /var/lib/docker/volumes/9944eebf8b7a11209111e403da8d3094a35f39afe6e1ad72cfc2c8a9b624431d/_data /usr/share/nginx/html local  true }]

#查看匿名数据卷的文件
[root@ubuntu2404 ~]#ls /var/lib/docker/volumes/9944eebf8b7a11209111e403da8d3094a35f39afe6e1ad72cfc2c8a9b624431d/_data/
50x.html  index.html

#修改宿主机中匿名数据卷的文件
[root@ubuntu2404 ~]#echo Anonymous Volume >/var/lib/docker/volumes/9944eebf8b7a11209111e403da8d3094a35f39afe6e1ad72cfc2c8a9b624431d/_data/index.html 
[root@ubuntu2404 ~]#curl 127.0.0.1
Anonymous Volume

#删除容器不会删除匿名数据卷
[root@ubuntu2404 ~]#docker rm -f nginx 
nginx
[root@ubuntu2404 ~]#docker volume ls
DRIVER    VOLUME NAME
local     9944eebf8b7a11209111e403da8d3094a35f39afe6e1ad72cfc2c8a9b624431d
[root@ubuntu2404 ~]#docker run -d -p 80:80 -v /usr/share/nginx/html --name nginx nginx:1.26 
0b298859ea2bf81e347fca05d72c1986b8df336d11619fa81329f888be431b18
[root@ubuntu2404 ~]#cat /var/lib/docker/volumes/9944eebf8b7a11209111e403da8d3094a35f39afe6e1ad72cfc2c8a9b624431d/_data/index.html 
Anonymous Volume

[root@ubuntu2404 ~]#docker volume ls
DRIVER    VOLUME NAME
local     9944eebf8b7a11209111e403da8d3094a35f39afe6e1ad72cfc2c8a9b624431d
local     e568cc1b396a3cb0798a7aa8d01fe6de323d2925edb6d3f97b395f801ffc0c3e

#删除匿名数据卷
[root@ubuntu2404 ~]#docker volume rm 9944eebf8b7a11209111e403da8d3094a35f39afe6e1ad72cfc2c8a9b624431d 
[root@ubuntu2404 ~]#docker volume ls
DRIVER    VOLUME NAME
local     e568cc1b396a3cb0798a7aa8d01fe6de323d2925edb6d3f97b395f801ffc0c3e

结论

匿名数据卷为开发者提供了一种简便的方式来实现数据持久化,特别是在处理临时数据时显得尤为方便。通过本次实战指南,希望你能够更好地理解匿名数据卷的工作原理及其应用场景。开始实践吧,探索更多关于 Docker 数据管理的可能性!

相关推荐
leeyi9 小时前
把软件装进不能上网的机房——一套建好了、还没上过战场的交付工程(第101篇)
docker·aigc·agent
YIAN11 小时前
Docker + Nginx 核心原理扫盲:从环境隔离到反向代理,运维面试必考点
后端·docker·面试
IT大白鼠13 小时前
Docker 实战 ELKF 日志监控:容器日志全栈收集分析方案
运维·docker·容器
贝锐1 天前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
Julien20041 天前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
报错小能手1 天前
Kubernetes入门实战课 3
云原生·容器·kubernetes
天远Date Lab1 天前
零信任架构实战:基于天远双人婚姻评估查询构建自动化房产按揭联合审查网关
运维·人工智能·架构·自动化
2601_962074681 天前
自己编译RustDesk,并将自建ID服务器和key信息写入客户端
运维·服务器
小张同学a.1 天前
Docker 容器实战 1—— docker 基础与镜像构建
linux·运维·docker·容器
大模型丫丫1 天前
Hermes Agent:轻量级智能体框架实战指南
大数据·运维·服务器