手册页docker rm
说
删除容器及其卷
$ docker rm -v redis redis
此命令将删除容器并任何与之相关的卷。注意如果使用名称指定了卷,它不会被删除。
“用名称指定卷”是什么意思?这样的卷不是与要移除的容器关联的卷吗?
删除容器并有选择地删除卷
$ docker create -v awesome:/foo -v /bar --name hello redis hello $ docker rm -v hello
在这个例子中,/foo 的音量将保持不变,但 /bar 的音量将被删除。相同的行为适用于使用 --volumes-from 继承的卷。
为什么“/foo 的音量将保持不变,但 /bar 的音量将被删除”?
谢谢。
答案1
看有关卷的 Docker 文档背景信息,特别是它对体积去除的描述。
“用名称指定卷”是什么意思?这样的卷不是与要移除的容器关联的卷吗?
-v name:path
它意味着具有自己名称的卷,使用或选项安装在容器中--mount
。此类卷应与任何容器分开管理(即使它们与容器一起创建)。当请求将卷与容器一起删除时,它们不会与容器一起删除,而是需要单独删除。
为什么“卷
/foo
将保持不变,但卷/bar
将被删除”?
因为/foo
是一个命名卷 ( awesome
),所以它是单独管理的,而/bar
是一个匿名卷,除了与其关联的容器的生命周期之外,没有任何用处。
答案2
docker rm -v
注意命名卷不会被错误删除。匿名卷可以用作临时存储,但命名卷预计会持续更长时间。
要删除命名卷,如上例所示:docker volume rm awesome