如何删除 Docker 镜像、容器和卷
Docker 是一个开源、强大、安全、可靠且高效的容器平台,可实现应用程序和基础设施之间的真正独立性。它被 IT 和云公司广泛采用,可以轻松创建、部署和运行应用程序。
容器是一种可视化操作系统的技术,它使应用程序能够与运行它所需的一切打包在一起,从而使其能够独立于操作系统运行。容器镜像是应用程序的一个独立的可执行包,其中包含运行它所需的一切:代码、运行时、系统工具和库以及配置。
我们已经介绍了关于Docker的系列文章,解释了如何安装Docker、在容器中运行应用程序以及使用dockerfile自动构建docker镜像。
- 在 CentOS 和 RHEL 7/6 中安装 Docker 并学习基本的容器操作
- 如何在 CentOS/RHEL 7/6 上的 Docker 容器中部署和运行应用程序
- 在 CentOS/RHEL 7/6 上使用 Dockerfile 自动构建和配置 Docker 映像
- 如何在 Docker 容器中设置简单的 Apache Web 服务器
在本文中,我们将介绍如何在 Linux 系统中通过 docker 命令行工具删除 docker 镜像、容器和卷。
如何删除 Docker 镜像
在删除任何 docker 映像之前,您可以使用映像管理命令列出系统上的所有现有映像。
docker image #list the most recently created images
OR
docker image -a #list all images
查看下面屏幕截图中的输出,我们有一些没有标签的图像(改为显示 ),这些图像被称为“悬挂图像”。它们不再与任何标记的图像有任何关系;它们不再有用,只会消耗磁盘空间。
例如,您可以使用映像 ID 删除一个或多个旧的或未使用的 Docker 映像(其中 d65c4d6a3580 是映像 ID)。
docker rmi d65c4d6a3580 #remove a single image
docker rmi 612866ff4869 e19e33310e49 abe0cd4b2ebc #remove multiple images
您可以使用 -f
过滤器标志列出悬挂图像(未标记图像),如图所示。
docker images -f dangling=true
要删除所有悬空图像,以便回收浪费的磁盘空间,请使用以下任意命令。
docker image prune #interactively remove dangling images
OR
docker rmi $(docker images -q -f dangling=true)
要删除所有不与任何容器关联的内容,请使用以下命令。
docker image prune -a
如何删除 Docker 容器
您可以首先使用以下命令列出系统上的所有 docker 容器。
docker ps
OR
docker ps -a
例如,确定要删除的容器后,您可以使用其 ID 来删除它们。
docker rm 0fd99ee0cb61 #remove a single container
docker rm 0fd99ee0cb61 0fd99ee0cb61 #remove multiple containers
如果容器正在运行,您可以先停止它并删除它,如图所示。
docker stop 0fd99ee0cb61
docker rm -f 0fd99ee0cb61
您还可以通过添加 --force
或 -f
标志在运行时强制删除容器,这将向其发送 <如图所示,strong>SIGKILL 信号。
docker rm -f 0fd99ee0cb61
您也可以使用过滤器删除容器。例如,要删除所有退出的容器,请使用此命令。
docker rm $(docker ps -qa --filter "status=exited")
要停止并删除所有容器,请使用以下命令。
docker stop $(docker ps -a -q) #stop all containers
docker container prune #interactively remove all stopped containers
OR
docker rm $(docker ps -qa)
如何删除 Docker 卷
和以前一样,首先使用卷管理命令列出系统上的所有 docker 卷,如图所示。
docker volume ls
要删除一个或多个卷,请使用以下命令(请注意,您无法删除容器正在使用的卷)。
docker volume rm volume_ID #remove a single volume
docker volume rm volume_ID1 volume_ID2 #remove multiple volumes
使用 -f
标志强制删除一个或多个卷。
docker volume rm -f volume_ID
要删除悬空卷,请使用以下命令。
docker volume rm $(docker volume ls -q --filter dangling=true)
要删除所有未使用的本地卷,请运行以下命令。这将以交互方式删除卷。
docker volume prune
如何删除未使用或悬空的映像、容器、卷和网络
您可以使用此单个命令删除所有悬空和未引用的数据,例如已停止的容器、没有容器的图像。默认情况下,不会删除卷,以防止在当前没有容器使用该卷时删除重要数据。
docker system prune
要修剪卷,只需将 --volumes
标志添加到以下命令中,如下所示。
docker system prune --volumes
注意:例如,为了在不使用 sudo 命令的情况下运行 docker 命令行工具,您需要将用户添加到 docker 组。
sudo usermod -a -G docker aaronkilik
有关更多信息,请参阅上述 docker 对象管理命令的帮助页面。
docker help
docker image help
docker container help
docker volume help
目前为止就这样了!在本文中,我们解释了如何通过 docker 命令行工具删除 docker 镜像、容器和卷。如果您有任何问题或想法要分享,请使用下面的反馈表与我们联系。