首页 > 编程语言 > docker volume删除卷的操作
2021
03-24

docker volume删除卷的操作

prune

要使用此命令,客户端和守护程序API版本都必须至少为1.25。在客户端上使用docker version命令可以检查客户端和守护程序API版本。

docker volume prune [OPTIONS]

删除未被任何容器使用的本地卷。

OPTIONS

名称,简写 说明
--filter 提供过滤值。
--force , -f 不提示确认信息,直接删除。

rm

要使用此命令,客户端和守护程序API版本都必须至少为1.21。在客户端上使用docker version命令可以检查客户端和守护程序API版本。

docker volume rm [OPTIONS] VOLUME [VOLUME...]

删除一个或多个卷。从1.25版本起,支持一个选项--force , -f,强制删除一个或多个卷。

补充:docker 移除,裁剪,删除(prune)不使用的镜像、容器、卷、网络

参考docker prune

提供 prune命令,用于移除不使用的镜像、容器、卷、网络。

Prune images

docker image prune移除没有标签并且没有被容器引用的镜像,这种镜像称为 dangling(摇晃的) 镜像。

示例1:docker image prune

删除了redis,无标签且无引用

#docker ps -a
CONTAINER ID IMAGE  COMMAND CREATED STATUS PORTS  NAMES
# docker images
REPOSITORY    TAG  IMAGE ID  CREATED  SIZE
nginx     latest ae2feff98a0c 4 days ago  133MB
redis     <none> ef47f3b6dc11 8 days ago  104MB
centos     latest 300e315adb2f 12 days ago 209MB
ubuntu     latest f643c72bc252 3 weeks ago 72.9MB
docs/docker.github.io latest 32ed84d97e30 6 months ago 1GB
# docker image prune
# docker images
REPOSITORY    TAG  IMAGE ID  CREATED  SIZE
nginx     latest ae2feff98a0c 4 days ago  133MB
centos     latest 300e315adb2f 12 days ago 209MB
ubuntu     latest f643c72bc252 3 weeks ago 72.9MB
docs/docker.github.io latest 32ed84d97e30 6 months ago 1GB

示例2:移除所有没有容器使用的镜像 -a

docker image prune -a

跳过警告提示:--force或-f

docker image prune -f

示例3:执行过滤删除:

超过24小时创建的镜像

docker image prune -a --filter "until=24h"

关于过滤器的内容,查看 docker image prune手册

移除容器s

当停止容器,不会自动删除,除非在 docker run 时指定了 --rm。一个停止的容器可写层仍然会占用磁盘空间,所以清除它,使用 docker container prune命令。

其他参数类似 docker images prune

移除卷

卷会被一个或多个容器使用,并且占用主机空间。卷不会自动移除,因为自动移除,会破坏数据。

docker volume prune

其他参数类似 docker images prune

移除网络

Docker 网络不会占用磁盘空间,但是他们创建了 iptables规则,桥接网络服务,路由entries。清除未被容器使用的网络,这么做

docker network prune

其他参数类似 docker images prune

移除 Everything

docker system prune 命令是一个快捷方式,用于移除镜像,容器,网络。

在 Docker 17.06.0 和更早,卷也是可以移除的。在Docker 17.06.1或更高版本,需要指定参数--volumes。

示例(没有移除卷):

# docker system prune
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all dangling images
  - all build cache
Are you sure you want to continue? [y/N] y

示例(有了移除卷功能):添加--volumes

# docker system prune --volumes
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all volumes not used by at least one container
  - all dangling images
  - all build cache
Are you sure you want to continue? [y/N] y

其他参数类似 docker images prune

以上为个人经验,希望能给大家一个参考,也希望大家多多支持自学编程网。如有错误或未考虑完全的地方,望不吝赐教。

编程技巧