Docker学习

一、删除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镜像和容器(超详细)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值