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

相关推荐
一叶龙洲4 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
敖行客 Allthinker6 小时前
Parallels Ubuntu虚拟机项目如何让手机访问?完整解决方案
linux·运维·ubuntu
BullSmall7 小时前
Anolis OS 8.10 完整安装 Docker CE(生产可用,解决 podman 冲突)
docker·容器·podman
keyipatience7 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
元Y亨H8 小时前
生产环境监控与故障应急处理(5-5-5 标准)指南
运维
观山岳五楼9 小时前
Ubuntu 24 怎么使用Ubuntu 20 的镜像源
linux·运维·ubuntu
寒晓星9 小时前
[linux]线程及多线程
linux·运维
辰痕~9 小时前
物理机装Linux操作系统(Ubuntu为例)
linux·ubuntu
慧一居士10 小时前
Linux如何设置固定的静态ip
运维
梦梦代码精10 小时前
开源AI应用平台BuildingAI解析:插件化架构、应用市场与热门案例
人工智能·机器学习·docker·开源