我该如何使用`docker rm -v`?

我该如何使用`docker rm -v`?

手册页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

相关内容