1 在删除容器时删除 volume
可以使用 docker rm -v 命令在删除容器时删除该容器的卷。
[root@along ~]# docker run --name web2 -v /data/ -d nginx:1.14-alpine
59a3db695835a9f1a8be97c0ca0f70bc792f5303302264dba913c7c1b6d81ebd
[root@along ~]# docker volume ls
DRIVER VOLUME NAME
local 17ac2071805d1609cf5501f81bec81d3d19467ea5a0c3428d2e77b414607775b
local 1e28bac2454d8c92ba39e8e22b9d88004284310a776e50dc379282de63c0e149
[root@along ~]# docker kill web2
web2
[root@along ~]# docker rm -v web2
web2
[root@along ~]# docker volume ls
DRIVER VOLUME NAME
local 1e28bac2454d8c92ba39e8e22b9d88004284310a776e50dc379282de63c0e149
2 批量删除孤单 volumes
从上面的介绍可以看出,使用 docker run -v 启动的容器被删除以后,在主机上会遗留下来孤单的卷。可以使用下面的简单方法来做清理:
[root@along ~]# docker volume ls -qf dangling=true
1e28bac2454d8c92ba39e8e22b9d88004284310a776e50dc379282de63c0e149
[root@along ~]# docker volume rm $(docker volume ls -qf dangling=true)
1e28bac2454d8c92ba39e8e22b9d88004284310a776e50dc379282de63c0e149
[root@along ~]# docker volume ls
DRIVER VOLUME NAME
3 github 上有很多脚本可以自动化地清理孤单卷
比如:
https://github.com/chadoe/docker-cleanup-volumes/blob/master/docker-cleanup-volumes.sh
https://github.com/meltwater/docker-cleanup