1. 程式人生 > >docker私有倉庫刪除image

docker私有倉庫刪除image

docker 私有倉庫 image

docker倉庫存放著公司內部的鏡像、時間長了難免存在一些廢棄的鏡像在裏面。如果不刪除造成空間的浪費。下面就簡單的看看倉庫中的鏡像是怎麽刪除的。

第一步:registry啟動依賴config.yml配置文件:在默認文件的storage區域中添加delete_enable_ture配置項。也可以在啟動時候指定-e添加。允許刪除鏡像:

配置文件:

技術分享

第二步:下載registry鏡像並啟動容器。

docker run  -d -v /conf/:/etc/docker/registry -v /opt/registry:/var/lib/registry -p5000:5000 --restart=always --name registry docker.io/registr y:latest

技術分享

第三步:上傳鏡像

技術分享

前邊三個步驟都是為刪除鏡像做準備。現在正式開始刪除操作。

先看下官網怎麽說:

技術分享

語法非常簡單。官網上註明可以通過name和digest刪除image。name我們是知道的。現在去獲取digest:

技術分享

刪除一個image所需要的name和digest都有了。現在執行刪除操作:

[[email protected] ~]# curl -XDELETE 127.0.0.1:5000/v2/registry_test/manifests/sha256:48b7957fb8794 3139789779c6e1448ce3cbd52adf1eba62f4633c0e289c08c1b

技術分享

看似已經刪除了,其實硬盤地址並沒有釋放。是因為docker刪除image只是刪除的image的元數據信息。層數據並沒有刪除。現在進入registry中進行垃圾回收

[[email protected] ~]# docker exec -it <容器ID|容器名稱> /bin/sh
/ # cd /var/lib/registry/
/var/lib/registry # du -sch
10.3M    .
10.3M    total
/var/lib/registry # registry garbage-collect /etc/docker/registry/config.yml
/var/lib/registry # du -sch
28.0K    .
28.0K    total

這樣就達到我們的目的了。及刪除了倉庫容器,又釋放了磁盤空間

註意事項:

1、registry配置文件:如果想要進行倉庫images的刪除操作: 至少要添加REGISTRY_STORAGE_DELETE_ENABLED: true這個環境變量也就是第一步標註的

2、獲取digest:自從registry2.3之後,獲取digest需要進行安全檢查。所以必須加頭部信息Accept: application/vnd.docker.distribution.manifest.v2+json。否則獲取到的digest將不能使用。


本文出自 “努力奔小康” 博客,請務必保留此出處http://302876016.blog.51cto.com/12889292/1966816

docker私有倉庫刪除image