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

相关推荐
Blossom.1182 小时前
AI Agent的长期记忆革命:基于向量遗忘曲线的动态压缩系统
运维·人工智能·python·深度学习·自动化·prompt·知识图谱
HehuaTang2 小时前
requests 调大并对齐 limits 提升POD高负载场景下性能
java·docker·kubernetes
shawnyz2 小时前
RHCSE--ansible1-入门和模块
linux·运维·ansible
星辰&与海2 小时前
Docker 资源调度限制
docker
奔跑的花短裤3 小时前
ubuntu安装Isaac sim4.5与强化学习使用
linux·ubuntu·机器人·强化学习·isaac sim·isaac lab
陕西小伙伴网络科技有限公司3 小时前
CentOS-7 编译glibc-2.29
linux·运维·centos
清风拂山岗 明月照大江3 小时前
MySQL运维
运维·数据库·mysql
米高梅狮子3 小时前
02. 配置DNS服务器
运维·服务器·centos
宴之敖者、3 小时前
Linux——指令
linux·运维·服务器