一、删除Docker容器和镜像
1、删除Docker容器
查看Docker中运行中的容器,例如 Nginx ,容器ID为 39c,并删除容器。
(1)查看Docker中运行中的容器。
docker ps -a
(2)删除Nginx容器(39c)。
docker rm 39c
(3)发现会报错,报错内容如下,意思是容器还在运行,不能删除,先停止运行再删除,或直接强制删除。
Error response from daemon: You cannot remove a running container 39cdb69246fdb6b623cff60af5b59e033149b6940bc5e0432c760ea245da81a9. Stop the container before attempting removal or force remove
2、停止容器(39c),查看所有容器的运行状态。
(1)停止容器。
docker stop 39c
(2)查看所有容器的运行状态(包含运行中的和已停止的)。
docker ps -a
3、删除容器(39c),查看所有容器的运行状态。
(1)删除容器。
docker rm 39c
(2)查看所有容器的运行状态(包含运行中的和已停止的)。
docker ps -a
(3)容器(39c)已经不存在了,说明被成功删除了。
2、删除Docker镜像
1.查看当前镜像
在执行删除操作之前,首先需要查看系统中的所有镜像:
docker images
该命令会列出已经下载到本地系统中的所有镜像,包括镜像名称、版本号(标签)、镜像ID、创建时间和大小等信息。
2.删除单个镜像
指定镜像名称或ID:
使用命令“ docker rmi 镜像的名称或ID”来删除单个镜像。例如,要删除名为 my_image 的镜像,可以运行:
docker rmi my_image
或者,如果你知道镜像的ID(例如 c3f279d17e0a),也可以这样删除:
docker rmi c3f279d17e0a
PS:只取“IMAGE ID”的前3个字符即可
若出现以下报错内容,意思是镜像(df1)存在使用中的容器(f66),不能强制删除镜像。官方的意思是要先停止容器运行,再进行镜像的删除操作
Error response from daemon: conflict: unable to delete df1998569adb (cannot be forced) - image is being used by running container f6678f2821c7
此时需要先停止并删除容器才能删除对应的镜像,否则仍然会出以下报错:
Error response from daemon: conflict: unable to delete df1998569adb (must be forced) - image is being used by stopped container f6678f2821c7
查看Docker运行中的容器
docker ps
如果镜像正在被一个或多个容器使用,Docker 默认不允许删除该镜像。此时,可以添加 -f 或 --force 选项来强制删除镜像,即使有容器正在使用它。例如:
强制删除:
docker rmi -f my_image
3.删除多个镜像
要一次删除多个镜像,可以在 docker rmi 命令中指定多个镜像名称或ID,用空格分隔。例如,要删除名为 image1、image2 和 image3 的三个镜像,可以运行:
docker rmi image1 image2 image3
同样,如果需要强制删除这些镜像,可以添加 -f 选项。
4.删除所有镜像
删除所有未使用的镜像:
使用 docker image prune 命令可以删除所有没有被任何容器使用的镜像。这是一个相对安全的操作,因为它不会删除正在被使用的镜像。
docker image prune
注意:该命令会提示你确认是否删除,你可以输入 y 来确认。
删除所有镜像(包括正在使用的):
如果你确实需要删除所有镜像,包括那些正在被使用的镜像,可以使用以下命令组合:
docker rmi $(docker images -q)
这里,docker images -q 命令会列出所有镜像的ID(不带其他信息),然后通过管道传递给 docker rmi 命令进行删除。但请注意,这是一个不可逆的操作,应谨慎使用。
5.注意事项
在删除镜像之前,请确保该镜像不再需要,避免误删系统必需的镜像。
如果镜像正在被容器使用,你需要先停止并删除这些容器,或者强制删除镜像(使用 -f 选项)。
docker image rm 命令和 docker rmi 命令是等价的,都可以用来删除镜像。
删除镜像只会影响本地环境,不会影响远程仓库中的镜像。如果需要从远程仓库中删除镜像,则需要使用远程仓库提供的相应命令或操作界面。
二、注意事项
强制删除镜像和容器(不推荐做法)
1、经验证,镜像中的容器状态为已停止或已删除的才能被强制删除,同时对应的容器(d70)也会被删除。若容器还在运行中,删除镜像会报错!命令“docker rmi”后面加参数“-f”。“image_id”代表镜像ID(IMAGE ID)。
```cpp
docker rmi -f image_id
2、无论容器是否正在运行中或者已停止,都可被强制删除!命令“docker rm”后面加参数“-f”。“container_id”代表容器ID(CONTAINER ID)。
docker rm -f container_id
五、总结
优雅地删除镜像的最佳做法是:先停止容器,再删除容器,最后删除镜像。
优雅地删除容器的最佳做法是:先停止容器,再删除容器。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u014282578/article/details/127866389
提问:容器与镜像的区别
docker rmi $(docker ps -qf "dangling=true")
docker volume prune -f
docker exec -it 9e789de05674 /bin/bash
systemctl restart docker
————————————————
1.Docker删除镜像
2.如何优雅地删除Docker镜像和容器(超详细)