docker学习笔记4---docker容器和镜像的删除

docker容器和镜像的删除

(1)删除容器

获取容器信息命令:

docker container ls -a     #获得容器信息

docker container ls -a  -p   #获得容器id

docker学习笔记4---docker容器和镜像的删除_第1张图片

如果你要删除的 container 还是运行状态,那么就要先把容器停止了:

docker container stop 

找到需要删除的容器对应的  container ID 或者名字,进行删除:

docker container rm 

批量停止容器:

docker container stop $(docker container ls -a -q)

docker学习笔记4---docker容器和镜像的删除_第2张图片

批量删除容器:

docker container rm $(docker container ls -a -q)

(2)删除镜像

删除镜像文件的方法和删除容器的方法是一样的,将删除容器命令中的container更改成image即可

(3)可能报错

有时候,直接删除镜像时,回报以下错误:

这是由于镜像正在被容器使用,用命令停止容器,移除容器后,在移除镜像即可.

二.

并且确定此镜像未被容器使用,这是由于镜像被repositories(仓库)引用,解决方法如下:

删除Repository

被删除的ImageID,这里存在1个Repository名字引用,解决方法如下:

即删除时指定名称,而不是IMAGE ID。

docker rmi

docker学习笔记4---docker容器和镜像的删除_第3张图片

查看镜像,已删除

三:  

出现以下错误:

Error response from daemon: conflict: unable to delete c9cde4658340 (cannot be forced) - image has dependent child images

这样的错误,原因是有另外的 image FROM 了这个 image,可以使用下面的命令列出所有在指定 image 之后创建的 image 的父 image

docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=xxxxxx)

解决方法:

其中 xxxxxx 是报错 image 的 id,在文章的例子中就是 c9cde4658340 。从列表中查找到之后就可以核对并删除这些 image,然后此镜像就可以移除了

四:  none镜像

有时运行下面命令会出现如下错误:

docker images -a

docker学习笔记4---docker容器和镜像的删除_第4张图片

并且这些虚悬镜像删不掉,解决办法:

docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=xxxxxx)

删除关联的依赖镜像,关联的none镜像也会被删除

或者

docker rmi $(docker images -q -f dangling=true)

直接移除所有的虚悬镜像

拓展:

# 停止所有容器
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop

# 删除所有容器
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm

# 删除所有none容器
docker images|grep none|awk '{print $3 }'|xargs docker rmi

你可能感兴趣的:(Linux,docker,删除image,删除container,删除镜像,删除容器)