docker強制刪除鏡像


前言

在搭建k8s集群的時候,由於master主機需要一系列的組件,例如kube-apiserver, kube-proxy, kube-controller-manager, etcd等。

這些都是以docker容器形式運行的,所以需要提前拉取。

但是,由於某些原因吧,k8s沒有拉起來。在檢查的時候發現docker鏡像出了問題。於是我就去刪除它們,但是刪除的時候也出了錯誤:

[root@node1 ~]# docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
k8s.gcr.io/kube-apiserver                                         v1.22.1             f30469a2491a        9 days ago          128 MB
registry.aliyuncs.com/google_containers/kube-apiserver            v1.22.1             f30469a2491a        9 days ago          128 MB
k8s.gcr.io/kube-proxy                                             v1.22.1             36c4ebbc9d97        9 days ago          104 MB
k8s.gcr.io/kube-controller-manager                                v1.22.1             6e002eb89a88        9 days ago          122 MB
registry.aliyuncs.com/google_containers/kube-controller-manager   v1.22.1             6e002eb89a88        9 days ago          122 MB
k8s.gcr.io/kube-scheduler                                         v1.22.1             aca5ededae9c        9 days ago          52.7 MB
registry.aliyuncs.com/google_containers/kube-scheduler            v1.22.1             aca5ededae9c        9 days ago          52.7 MB
k8s.gcr.io/etcd                                                   3.5.0-0             004811815584        2 months ago        295 MB
registry.aliyuncs.com/google_containers/etcd                      3.5.0-0             004811815584        2 months ago        295 MB
k8s.gcr.io/coredns/coredns                                        v1.8.4              8d147537fb7d        3 months ago        47.6 MB
k8s.gcr.io/pause                                                  3.5                 ed210e3e4a5b        5 months ago        683 kB
registry.aliyuncs.com/google_containers/pause                     3.5                 ed210e3e4a5b        5 months ago        683 kB
[root@node1 ~]# docker rmi $(docker images -a -q)
Untagged: k8s.gcr.io/kube-proxy:v1.22.1
Untagged: k8s.gcr.io/kube-proxy@sha256:efcf1d5fb2fc95d28841f534f1385a4884230c7c876fb1b7cf66d2777ad6dc56
Deleted: sha256:36c4ebbc9d979f15a0316c6dde446c556250d397e2085375cfbaf2660272d912
Deleted: sha256:bc584c3df17637d0ea10b53014d68dc283c7d3313a9e6f067282fcf78273fc66
Deleted: sha256:48b90c7688a2c85d7081a437ecba5cb706fbaa98b09def0b206dbbe39e3af558
Untagged: k8s.gcr.io/coredns/coredns:v1.8.4
Untagged: k8s.gcr.io/coredns/coredns@sha256:6e5a02c21641597998b4be7cb5eb1e7b02c0d8d23cce4dd09f4682d463798890
Deleted: sha256:8d147537fb7d1ac8895da4d55a5e53621949981e2e6460976dae812f83d84a44
Deleted: sha256:22ff2e2a31dc2108bfa9a2f9c50bd5c154de33ea30b9fc9bbfe39f82a6e4bd7a
Deleted: sha256:225df95e717ceb672de0e45aa49f352eace21512240205972aca0fccc9612722
Error response from daemon: conflict: unable to delete f30469a2491a (must be forced) - image is referenced in multiple repositories
Error response from daemon: conflict: unable to delete f30469a2491a (must be forced) - image is referenced in multiple repositories
Error response from daemon: conflict: unable to delete 6e002eb89a88 (must be forced) - image is referenced in multiple repositories
Error response from daemon: conflict: unable to delete 6e002eb89a88 (must be forced) - image is referenced in multiple repositories
Error response from daemon: conflict: unable to delete aca5ededae9c (must be forced) - image is referenced in multiple repositories
Error response from daemon: conflict: unable to delete aca5ededae9c (must be forced) - image is referenced in multiple repositories
Error response from daemon: conflict: unable to delete 004811815584 (must be forced) - image is referenced in multiple repositories
Error response from daemon: conflict: unable to delete 004811815584 (must be forced) - image is referenced in multiple repositories
Error response from daemon: conflict: unable to delete ed210e3e4a5b (must be forced) - image is referenced in multiple repositories
Error response from daemon: conflict: unable to delete ed210e3e4a5b (must be forced) - image is referenced in multiple repositories

 

檢查

經過查閱資料,我發現必須強制刪除它們。

可以使用一下兩種方法:

  1. 使用-f選項強制刪除,即docker rmi -f image-id.
  2. 使用鏡像的倉庫路徑來刪除,即docker rmi repository:tag.

兩種方法我都試了一下,發現方法1比方法2管用,方法2刪除不成功,於是是用方法1來刪除。

可是我有很多鏡像,一個一個刪就到明年了。於是我就是用awk來批量刪除了。

[root@node1 ~]# for tag in $(docker images|awk '{print $3}')
> do
> docker rmi -f ${tag}
> done
[root@node1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

 

后記

我很奇怪為什么這套環境不能搭建成功k8s服務(在其他環境都可以),可能確實是網絡環境問題吧,嘎嘎嘎~

 

鳴謝

強制刪除docker鏡像


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM