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 数据管理的可能性!

相关推荐
天才奇男子7 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
小李独爱秋7 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障
Dying.Light8 小时前
Linux部署问题
linux·运维·服务器
S19018 小时前
Linux的常用指令
linux·运维·服务器
萤丰信息8 小时前
AI 筑基・生态共荣:智慧园区的价值重构与未来新途
大数据·运维·人工智能·科技·智慧城市·智慧园区
小义_9 小时前
【RH134知识点问答题】第7章 管理基本存储
linux·运维·服务器
运维小欣9 小时前
Agentic AI 与 Agentic Ops 驱动,智能运维迈向新高度
运维·人工智能
_运维那些事儿10 小时前
VM环境的CI/CD
linux·运维·网络·阿里云·ci/cd·docker·云计算
Trouvaille ~11 小时前
【Linux】UDP Socket编程实战(一):Echo Server从零到一
linux·运维·服务器·网络·c++·websocket·udp
嵌入小生00711 小时前
Shell | 命令、编程及Linux操作系统的基本概念
linux·运维·服务器