Docker中如何刪除image(鏡像)的方法
docker中刪除images的命令是docker rmi,但有時候執(zhí)行此命令并不能刪除images
[yaxin@ubox ~] $docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE eg_sshd latest ed9c93747fe1 45 hours ago 329.8 MB CentOS65 latest e55a74a32125 2 days ago 360.6 MB [yaxin@ubox ~]$docker rmi ed9c93747fe1 Untagged: ed9c93747fe16627be822ad3f7feeb8b4468200e5357877d3046aa83cc44c6af [yaxin@ubox ~]$docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE <none> <none> ed9c93747fe1 45 hours ago 329.8 MB CentOS65 latest e55a74a32125 2 days ago 360.6 MB
可以看出,image并沒有被刪除,只是他的tag被刪除了,再次執(zhí)行docker rmi IMAGE_ID只會報錯
[yaxin@ubox ~] $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的幫助會發(fā)現(xiàn)有兩個與刪除有關(guān)的命令rm和rmi
rm Remove one or more containers rmi Remove one or more images
這里有兩個不同的單詞,images和container。其中images很好理解,跟平常使用的虛擬機(jī)的鏡像一個意思,相當(dāng)于一個模版,而container則是images運(yùn)行時的的狀態(tài)。docker對于運(yùn)行過的image都保留一個狀態(tài)(container),可以使用命令docker ps來查看正在運(yùn)行的container,對于已經(jīng)退出的container,則可以使用docker ps -a來查看。 如果你退出了一個container而忘記保存其中的數(shù)據(jù),你可以使用docker ps -a來找到對應(yīng)的運(yùn)行過的container使用docker commit命令將其保存為image然后運(yùn)行。
回到之前的問題,由于image被某個container引用(拿來運(yùn)行),如果不將這個引用的container銷毀(刪除),那image肯定是不能被刪除。
所以想要刪除運(yùn)行過的images必須首先刪除它的container。繼續(xù)來看剛才的例子,
[yaxin@ubox ~] $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
[yaxin@ubox ~] $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
出現(xiàn)錯誤,這是因為該container正在運(yùn)行中(運(yùn)行docker ps查看),先將其關(guān)閉
[yaxin@ubox ~] $docker stop 117843ade696 117843ade696
[yaxin@ubox ~] $docker rm 117843ade696 117843ade696 [yaxin@ubox ~]$docker rmi ed9c93747fe1 Deleted: ed9c93747fe16627be822ad3f7feeb8b4468200e5357877d3046aa83cc44c6af Deleted: c8a0c19429daf73074040a14e527ad5734e70363c644f18c6815388b63eedc9b Deleted: 95dba4c468f0e53e5f1e5d76b8581d6740aab9f59141f783f8e263ccd7cf2a8e Deleted: c25dc743e40af6858c34375d450851bd606a70ace5d04e231a7fcc6d2ea23cc1 Deleted: 20562f5714a5ce764845119399ef75e652e23135cd5c54265ff8218b61ccbd33 Deleted: c8af1dc23af7a7aea0c25ba9b28bdee68caa8866f056e4f2aa2a5fa1bcb12693 Deleted: 38fdb2c5432e08ec6121f8dbb17e1fde17d5db4c1f149a9b702785dbf7b0f3be Deleted: 79ca14274c80ac1df1333b89b2a41c0e0e3b91cd1b267b31bef852ceab3b2044 [yaxin@ubox ~]$docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE CentOS65 latest e55a74a32125 2 days ago 360.6 MB
可以看出,image已經(jīng)被刪除。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
docker+daocloud實現(xiàn)前端項目自動構(gòu)建部署
這篇文章主要介紹了docker+daocloud實現(xiàn)前端項目自動構(gòu)建部署,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
詳細(xì)講解Docker-Compose部署Kafka?KRaft集群環(huán)境
這篇文章主要為大家介紹了Docker-Compose部署Kafka?KRaft集群環(huán)境的全面詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01

