Bugün itibariyle kayıt defterinden görüntüleri kaldırmak için basit bir yöntem gibi görünüyor ve onun 2,1 kilometre taşı kayıt için bir özellik gibi görünüyor .
Bu işe yaramazken bugün sahip olduğumuz seçeneklerden biri
anovil@ubuntu-anovil remove-registry]$ curl -X DELETE localhost:5000/v2/alpine/manifests/v1
{"errors":[{"code":"UNSUPPORTED","message":"The operation is unsupported."}]}
[anovil@ubuntu-anovil remove-registry]$
el ile kayıt defterinden kaldırmaktır. Yanlışlıkla yanlış dosyayı kaldırmaktan kaçınmak için , github'dan bu komut dosyasıyla test ettim . Bu komut dosyasının nasıl çalıştığına dair hiçbir garanti almıyorum (test etmeden önce hızlı bir şekilde kontrol ettim).
Bu yüzden bir test yaptım ve işe yarıyor gibi görünüyor :)
[1] Sanırım, liman işçisinin kendisi ile bir kayıt çalıştırıyorsunuz.
[anovil@ubuntu-anovil remove-registry]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
88f8e1a1d7a7 registry:2 "/bin/registry /etc/d" 37 minutes ago Up 37 minutes 0.0.0.0:5000->5000/tcp registry
[anovil@ubuntu-anovil remove-registry]$
[2] Sadece FROM alpine
içerikle minimal bir Dockerfile oluşturdum ve alpine: v1 oluşturdum ve localhost: 5000 üzerinde çalışan özel kayıt defterime geçtim . Kayıt defterinden sorgulandığında, beklendiği gibi döndü.
[anovil@ubuntu-anovil remove-registry]$ curl -X GET localhost:5000/v2/alpine/tags/list
{"name":"alpine","tags":["v1"]}
[anovil@ubuntu-anovil remove-registry]$
[3] Sonra denememle kayıt defterine giriş docker exec
yapıp disk kullanımını kontrol ettim
root@88f8e1a1d7a7:/# du -sch /var/lib/registry/
2.5M /var/lib/registry/
2.5M total
root@88f8e1a1d7a7:/#
[4] Sunucuma geri döndükten sonra, kabıma ağır bir dosya (mongodb.tgz) kopyaladım ve yerleşik ve itilmiş bir sürüm v2 oluşturdum.
[anovil@ubuntu-anovil remove-registry]$ docker build -t localhost:5000/alpine:v2 .
Sending build context to Docker daemon 61.99 MB
Step 1 : FROM alpine
---> 2314ad3eeb90
Step 2 : COPY mongodb.tgz /mongodb.tgz
---> d7c7645a3fe2
Successfully built d7c7645a3fe2
[anovil@ubuntu-anovil remove-registry]$ docker push localhost:5000/alpine:v2
The push refers to a repository [localhost:5000/alpine] (len: 1)
d7c7645a3fe2: Pushed
5ff05309724e: Image already exists
v2: digest: sha256:7bea1ec2910170bd88412b622aee6129791673cf1fd8c0e1e34f15ec26428774 size: 4467
[anovil@ubuntu-anovil remove-registry]$
[5] Kayıt defterindeki boyutu tekrar kontrol ettikten sonra 62 MB'a yükseldi:
root@88f8e1a1d7a7:/# du -sch /var/lib/registry/
62M /var/lib/registry/
62M total
root@88f8e1a1d7a7:/#
[6] Çalıştırmak delete_docker_registry_image
için, komut dosyasını kayıt defterini barındıran kapsayıcıya almanız gerekir, bunu yapmak için bir seçenek kıvrılmadır. Ayrıca, bu komut dosyası gerektirir jq
.
root@88f8e1a1d7a7:/# apt-get update && apt-get install -y curl jq
...
root@88f8e1a1d7a7:/#
[7] Betiği çalıştırın, --dry-run
önce seçeneği deneyin ve sürüm etiketini unutmayın (bu durumda v2), ayrıca iyi bir şey var-h
root@88f8e1a1d7a7:/# delete_docker_registry_image --image alpine:v2 --dry-run
DRY_RUN: would have deleted tag directory: repositories/alpine/_manifests/tags/v2
DRY_RUN: would have deleted manifest revision: repositories/alpine/_manifests/revisions/sha256/7bea1ec2910170bd88412b622aee6129791673cf1fd8c0e1e34f15ec26428774
DRY_RUN: would have deleted directory: blobs/sha256/e2/e2cc9aed084e01fa5cf93c09121035ac4d712113425ae68b678c28591beec5c6
DRY_RUN: would have deleted directory: blobs/sha256/7a/7ada67971e952e353ab14d8f9bdd4e41e4c41099b05a5da09f2700b51d93908a
DRY_RUN: would have deleted directory: blobs/sha256/7b/7bea1ec2910170bd88412b622aee6129791673cf1fd8c0e1e34f15ec26428774
DRY_RUN: would have deleted layer metadata directory: repositories/alpine/_layers/sha256/e2cc9aed084e01fa5cf93c09121035ac4d712113425ae68b678c28591beec5c6
root@88f8e1a1d7a7:/# delete_docker_registry_image --image alpine:v2
root@88f8e1a1d7a7:/#
[8] Ve işte !!
root@88f8e1a1d7a7:/# du -sch /var/lib/registry/
2.5M /var/lib/registry/
2.5M total
root@88f8e1a1d7a7:/#