Atvaizdai užimantys daugiausiai disko vietos Dockeryje

2018 rugsėjio 13 d. Docker

Dirbant su Docker gali ne kartą kilti klausimas kur dingsta disko vieta.

Jeigu žinote ar skaitėte anksčiau kaip veikia Docker, tai jis kiekvienam Dockerfile žingsniui kuria kešavimo atvaizdą. Vėliau kešavimo atvaizdas pernaudojamas dar kelis kartus kol galop sukuriamas norimas atvaizdas kurį jau leisite konteineryje. Tačiau kešas vistiek užsiliks.

Kiek užima atvaizdai

Pažiūrėti kiek užima Docker atvaizdai galima su komanda:

$ docker images

REPOSITORY                               [..]         SIZE
apikaupyklalt_kaupykla.lt-api            [..]         670MB
jarmalaviciuslt_jarmalavicius.lt-web     [..]         1.4GB
python                                   [..]         918MB
quizaminacom-api_quizamina.com-api       [..]         1.01GB
imagemizecom-api_imagemize.com-api       [..]         1.04GB
python                                   [..]         74.3MB

Atvaizdų dydžiai pagal TOP’ą

Jeigu domina išsirikiuoti atvaizdus pagal dydį, kad identifikuoti kas daugiausiai vietos užima ir ką galima optimizuoti:

$ docker images | awk 'NR!=1 {print $7"\t"$1}' | sort -rh

1.4GB   jarmalaviciuslt_jarmalavicius.lt-web
1.04GB  imagemizecom-api_imagemize.com-api
1.01GB  quizaminacom-api_quizamina.com-api
990MB   adminkaupyklalt_kaupykla.lt-admin
918MB   python
783MB   docker.elastic.co/elasticsearch/elasticsearch
703MB   services_apache
670MB   apikaupyklalt_kaupykla.lt-api

Trumpas komandos awk 'NR!=1 {print $7"\t"$1} paaiškinimas:

NR!=1 - praleidžia pirmą eilutę kurioje yra antraštės juosta (stulpelių pavadinimai).

{print $7"\t"$1} - sukeičiame pirmą ir paskutinį stulpelį, kad vėliau rikiavimo komanda galėtų išrikiuoti gražų sąrašą su TOP’ais.

Trumpas sort -rh komandos paaiškinimas:

-r - reiškia angl. reverse. Paprastas rikiavimas su sort būna didėjančiai, o mums reikia mažėjančio (todėl -r), kad viršuje matytume pačius didžiausius, apačioje - pačius mažiausius atvaizdus.

-h - reiškia angl. human numeric. Rikiuoja pagal pagal skaičius, tačiau žiūri ir prie jo esančią raidę M (MB), K (KB), G (GB) ir t.t.

Kaip pašalinti atvaizdus ir gauti daugiau disko vietos

Kaip atsilaisvinti disko vietos su Docker jau rašiau praėjusiame straipsnyje.