Docker je v dnešní době jedním z nejpopulárnějších produktů v organizacích. Velmi usnadňuje proces správy aplikací v kontejnerech. Docker poskytuje aplikacím přenositelnost, výkon, agilitu, škálovatelnost a izolaci, protože využívá kontejnery. Kontejnery jsou přenosnější a vyžadují méně prostředků než virtuální stroje. Při práci s Dockerem máte tendenci hromadit nadměrné množství nepoužívaných obrazů, svazků a kontejnerů. Tyto prostředky budou zahlcovat výstup a spotřebovávat spoustu místa na disku. V tomto návodu se naučíte, jak vyčistit prostředky Dockeru a uspořádat svůj server.
Vyčistit vše
Jediným příkazem můžete vyčistit všechny prostředky Dockeru včetně obrazů, zastavených kontejnerů, svazků a sítí. Můžete si vybrat jednu z níže uvedených možností:
Reference: Visící prostředky jsou ty, které nesouvisí s žádným běžícím kontejnerem.
Možnost 1:
|
1 |
docker system prune |
– všechny zastavené kontejnery
– všechny sítě, které nepoužívá alespoň jeden kontejner
– všechny visící obrazy
– veškerá visící mezipaměť sestavení
Možnost 2:
|
1 |
docker system prune -a |
– všechny zastavené kontejnery
– všechny sítě, které nepoužívá alespoň jeden kontejner
– všechny obrazy, s nimiž není spojen alespoň jeden kontejner
– veškerá mezipaměť sestavení
Možnost 3:
|
1 |
docker system prune -a --volumes |
– všechny zastavené kontejnery
– všechny sítě, které nepoužívá alespoň jeden kontejner
– všechny svazky, které nepoužívá alespoň jeden kontejner
– všechny obrazy, s nimiž není spojen alespoň jeden kontejner
– veškerá mezipaměť sestavení

Odstranění obrazů Dockeru
Chcete-li odstranit konkrétní obraz, musíte znát jeho ID obrazu. ID obrazu kontejneru Docker najdete pomocí příkazu “docker images”, jak je vysvětleno v našem návodu na jak nainstalovat & provozovat Docker na Ubuntu.
Seznam obrazů:
|
1 |
docker images |
Odstranit obraz:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
docker rmi <Obraz ID> Příklad: docker rmi 1d622ef86b13 Výstup: Untagged: ubuntu:latest Untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7 Deleted: sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01 Deleted: sha256:279e836b58d9996b5715e82a97b024563f2b175e86a53176846684f0717661c3 Deleted: sha256:39865913f677c50ea236b68d81560d8fefe491661ce6e668fd331b4b680b1d47 Deleted: sha256:cac81188485e011e56459f1d9fc9936625a1b62cacdb4fcd3526e5f32e280387 Deleted: sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f |
Odstranění visících obrazů:
Když sestavujete obraz Dockeru, obvykle se skládá z několika vrstev obrazů. Visící obrazy jsou vrstvy, které nemají žádný vztah k žádnému označenému obrazu. Visící obrazy spotřebovávají místo na disku, ale neslouží k žádnému účelu. Lze je vypsat pomocí příkazu:
|
1 |
docker images -f dangling=true |
Tyto obrazy můžete odstranit spuštěním následujícího příkazu:
|
1 |
docker image prune |
Odstranění obrazů na základě vzoru
Pomocí příkazu “grep” můžete snadno najít obrazy na základě konkrétního vzoru a poté je odstranit předáním do příkazu “docker rmi” pomocí “awk”. Může použít následující příkazy a v každém z nich nahradit “pattern”:
Seznam:
|
1 |
docker images -a | grep "pattern" |
Odstranit:
|
1 |
docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi |
Odstranit všechny obrazy
Všechny obrazy dockeru můžete vypsat pomocí příkazu:
|
1 |
docker images -a |
Jakmile se rozhodnete je všechny odstranit, můžete k jejich smazání použít tento příkaz:
|
1 |
docker images -a -q | xargs docker rmi |
Odstraňování kontejnerů:
Nyní, když jste vyčistili všechny nepotřebné obrazy, je čas smazat některé kontejnery, které již nejsou potřeba.
Pro výpis kontejnerů můžete použít příkaz:
|
1 |
docker ps -a |
Pro odstranění kontejnerů použijte příkaz:
|
1 |
docker rm <<Název kontejneru/ID kontejneru>> |
Dočasné spouštění kontejnerů
Pokud chcete kontejner spustit pouze jednou, můžete zvolit jeho automatické smazání po ukončení. Můžete tak učinit pomocí příkazu:
|
1 |
docker run --rm <<NázevObrazu>> |
Odstranění ukončených kontejnerů
Ukončené kontejnery můžete filtrovat pomocí argumentu “-f”. Seznam ukončených kontejnerů vypíšete příkazem:
|
1 |
docker ps -a -f status=exited |
Nyní, když jste je vyfiltrovali, odstraňte je pomocí tohoto příkazu:
|
1 |
docker rm $(docker ps -a -f status=exited -q) |
Odstranění kontejnerů na základě vzoru
Kontejnery můžete snadno vyhledat na základě konkrétního vzoru pomocí příkazu “grep” a poté je odstranit předáním do příkazu “docker rm” pomocí “awk”. Můžete použít následující příkazy a v každém z nich nahradit “pattern”.
Seznam:
|
1 |
docker ps -a | grep "pattern" |
Odstranit:
|
1 |
docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm |
Zastavení a odstranění všech kontejnerů
Předtím si prohlédněte všechny kontejnery na svém serveru tak, že je vypíšete. Teprve až si budete jisti, že je chcete smazat, spusťte následující příkazy:
Vypište kontejnery pro kontrolu:
|
1 |
docker ps -a |
Zastavit a odstranit:
|
1 2 |
docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) |
Odstraňování svazků
Odstranění konkrétního svazku
Chcete-li odstranit konkrétní svazek, musíte znát jeho název. Chcete-li to zjistit, můžete vypsat seznam svazků.
Seznam:
|
1 |
docker volume ls |
Odstranit:
|
1 |
docker volume rm <<NázevSvazku>> |
Odstranění osiřelých svazků
Při odstranění kontejneru se k němu připojený svazek neodstraní automaticky. Takový svazek se nazývá osiřelý (dangling). Chcete-li tyto svazky vyhledat, použijte v příkazu argument filtru:
|
1 |
docker volume ls -f dangling=true |
Chcete-li odstranit všechny tyto osiřelé svazky, použijte příkaz:
|
1 |
docker volume prune |
Odstranění kontejneru a jeho nepojmenovaného svazku
Pokud jste při spouštění kontejneru vytvořili anonymní nebo nepojmenovaný svazek, můžete jej odstranit společně s kontejnerem pomocí jediného příkazu. Pokud je však svazek pojmenovaný, smaže se pouze kontejner.
|
1 |
docker rm -v <<NázevKontejneru>> |
Nyní, když máte tento tahák, měli byste být připraveni vyčistit prostředky Dockeru, které již na vašem serveru nejsou potřeba.
Příjemnou práci!


Komentáře
Zatím žádné komentáře. Buďte první.