首页 > docker > docker中如何删除镜像image
2019
01-15

docker中如何删除镜像image

docker中删除images的命令是docker rmi,但有时候执行此命令并不能删除images


可以看出,image并没有被删除,只是他的tag被删除了,再次执行docker rmi IMAGE_ID只会报错

docker rmi ed9c93747fe1
Error: image_delete: Conflict, ed9c93747fe1 wasn’t deleted
2014/03/22 15:58:27 Error: failed to remove one or more images


查看docker的帮助会发现有两个与删除有关的命令rm和rmi

rm Remove one or more containers
rmi Remove one or more images

这里有两个不同的单词,images和container。其中images很好理解,跟平常使用的虚拟机的镜像一个意思,相当于一个模版,而container则是images运行时的的状态。docker对于运行过的image都保留一个状态(container),可以使用命令docker ps来查看正在运行的container,对于已经退出的container,则可以使用docker ps -a来查看。 如果你退出了一个container而忘记保存其中的数据,你可以使用docker ps -a来找到对应的运行过的container使用docker commit命令将其保存为image然后运行。

回到之前的问题,由于image被某个container引用(拿来运行),如果不将这个引用的container销毁(删除),那image肯定是不能被删除。

所以想要删除运行过的images必须首先删除它的container。继续来看刚才的例子,

docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
117843ade696 ed9c93747fe1 /bin/sh -c /usr/sbin 46 hours ago Up 46 hours 0.0.0.0:49153->22/tcp test_sshd

可以看出ed9c93747fe1的image被117843ade696的container使用着,所以必须首先删除该container

docker rm 117843ade696
Error: container_delete: Impossible to remove a running container, please stop it first
2014/03/22 16:36:44 Error: failed to remove one or more containers


出现错误,这是因为该container正在运行中(运行docker ps查看),先将其关闭

docker stop 117843ade696
docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
gin          latest    944438eaf5ba   32 minutes ago   1.17GB
<none>       <none>    35965ac2e81b   41 minutes ago   1.17GB
golang       1.18      65375c930b21   4 days ago       964MB

docker rmi 35965ac2e81b
Deleted: sha256:35965ac2e81b7c8fd6dc9356757d96b041464da8e3ceedf63d4057db74e7a4a8
Deleted: sha256:34e1c66e3d6906fde50d6be8c0b58ccf8d138cf8cdbfb9dce8eec46d24cdd631
Deleted: sha256:822b30831b6f6f7883a7eb71a7c6bd353a39df35315745eec8dfa7c5a335ca82
Deleted: sha256:cd6c723c46d32d5e42807d7202358d73e5d2c4f51dc4cf1c4b2bfcf1d45e31f3
Deleted: sha256:7d850f6c868492d75000e8df3583d0ee0279f70adea1fcaabb1e26ac87ee71c3
Deleted: sha256:8cc9d2783607aec0e039dd7306ee121a41e1b611a0a3df381c55122363677383


可以看出,image已经被删除。

本文》有 0 条评论

留下一个回复