[ROZWIĄZANY] Docker: Jak usunąć obrazy oznaczone jako repozytorium i tag'iem <none>?

Gdy często przebudowujemy obraz aplikacji, który oznaczony jest tym samym tag’iem np. latest, spotkamy się z problemem, że nasz rejestr obrazów (Docker registry), będzie posiadało wiele obrazów, które będą oznaczone jako <none>.

Problem jaki wtedy napotykamy to uciążliwe czyszczenie rejestru z tych śmieci. Usuwanie ich jeden po drugim, może przyspożyć nam sporo nerów i stracimy sporo czasu (z resztą to taka robota “głupiego”).

Usuwanie jeden-po-drugim

Spójrzmy na poniższy wykaz repozytorium:

docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
python                      3                   0a3a95c81a2b        12 days ago         932MB
<none>                      <none>              871503ecbdc9        4 weeks ago         392MB
sonarqube                   latest              d7558a6a8598        2 months ago        479MB
redis                       5.0.5               63130206b0fa        2 months ago        98.2MB
postgres                    9.6                 61c59b9a763f        2 months ago        230MB
postgres                    latest              e2d75d1c1264        2 months ago        313MB
mysql                       5.7                 383867b75fd2        2 months ago        373MB

Aby usunąć wybrany obraz możemy skorzystać z komendy:

docker image rm <IMAGE_ID>

W poniższym przykładzie usunę obraz redis, a <none> zostawie sobię do kolejnego przykładu.

# Usunięcie obrazu redis
docker image rm 63130206b0fa

pawel@pawel:~$ docker image rm 63130206b0fa
Untagged: redis:5.0.5
Untagged: redis@sha256:5dcccb533dc0deacce4a02fe9035134576368452db0b4323b98a4b2ba2d3b302
Deleted: sha256:63130206b0fa808e4545a0cb4a1f14f6d40b8a7e2e6fda0a31fd326c2ac0971c
Deleted: sha256:9476758634326bb436208264d0541e9a0d42e4add35d00c2a7408f810223013d
Deleted: sha256:0f3d9de16a216bfa5e2c2bd0e3c2ba83afec01a1b326d9f39a5ea7aecc112baf
Deleted: sha256:452d665d4efca3e6067c89a332c878437d250312719f9ea8fff8c0e350b6e471
Deleted: sha256:d6aec371927a9d4bfe4df4ee8e510624549fc08bc60871ce1f145997f49d4d37
Deleted: sha256:2957e0a13c30e89650dd6c00644c04aa87ce516284c76a67c4b32cbb877de178

Usunięcie wszystkich obrazów <none>

Aby usunąć wszystkie obrazy z tag’iem i rezpoytorium <none> skorzystaj z komendy poniżej:

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

W wyniku komendy otrzymasz informacje co zostało usunięte:

Deleted: sha256:871503ecbdc9f2f2bb2989af6440d34b0eef684b730d317680a8440813f321b5
Deleted: sha256:eb22964fbb062e908432240a2d12a448e75db2081481422c2908ec7875074a00
Deleted: sha256:bdc87704af3a50bd53ae32edef6c7f020b8f144c7ab9b227a9905223a0e0885f
Deleted: sha256:d0cddd997d27bd75a0b75d36733e4350e5750f0d0182cd634801c579e9aba915
Deleted: sha256:1781e4eca03220934d1646f64a6d3775b935c6db2fb00474b5c8d9844e8faa1f

Teraz ponownie możesz sprawdzić, czy rzeczywiście obrazy zostały usunięte, używająć komendy:

docker images

Jeśli spodobał Ci się ten post to zostaw proszę komentarz poniżej oraz udostępnij ten post na swoim Facebook’u, Twitter’ze, LinkedIn lub innej stronie z mediami społecznościowymi.
Dzięki!

Leave a Reply

avatar
  Subscribe  
Powiadom o
Close Menu