Obrázky dockeru mohou být velmi velké, a pokud často pracujete s kontejnery, může to zabírat hodně místa. Probereme, jak vyčistit stažené obrázky a odstranit staré soubory, které nepotřebujete.
Docker Images vs. Docker Containers
Docker Images zpracovávají svá data jinak než kontejnery. Obrázky jsou soubory pouze pro čtení, které jsou vytvořeny z Dockerfiles a odeslány do centra Docker. Pokaždé, když si stáhnete novou verzi, musí Docker stáhnout soubory pro tuto novou verzi. Staré verze jsou stále uloženy na vašem místním disku.
Kontejnery jsou vytvořeny z obrazů a obvykle mají svůj vlastní souborový systém a svazky k nim připojené. Když kontejner zastavíte, všechna data, která nejsou uložena na svazku, budou odstraněna. Chcete-li tedy vyčistit data používaná kontejnery, stačí je zastavit a odstranit jejich svazky.
Pro vyčištění obrázků poskytuje Docker několik příkazů pro spouštění garbage collection.
Prořezávání obrázků
Nevyhnutelně skončíte s obrázky, které se nepoužívají, ať už se jedná o staré verze obrázků nebo obrázky z kontejnerů, které aktivně neběží. V každém případě smazání obrázku obvykle nepředstavuje žádný problém – pokud jej budete znovu potřebovat, Docker jej jednoduše načte ze vzdáleného úložiště.
Chcete-li zobrazit všechny obrázky uložené ve vašem systému, můžete použít následující příkaz:
docker image ls
Přestože to vypadá, že všechny tyto verze zabírají v tomto výstupu spoustu místa, různé verze se ukládají postupně, takže na disk se ve skutečnosti ukládají pouze změny z nové verze.
Obrázek můžete odstranit ručně podle jeho ID obrázku:
docker image rm 3a8d8f76e7f8f
Mnohem bezpečnější metodou je však použití vestavěného prune
příkaz, který prohledá všechny obrázky, aby našel a odstranil ty bez aktivních odkazů:
docker image prune -a
Vynechání -a
tag uchová obrázky, které jsou označené, ale nepoužívají se. S příznakem zůstanou pouze obrázky, které aktivně používáte.
prune
příkaz vám řekne, kolik místa bylo uvolněno, ale pokud chcete ručně zkontrolovat, kolik úložiště Docker používá předtím a potom, můžete použít du -sh
v adresáři úložiště Docker:
sudo du -sh /var/lib/docker/
Tento adresář bude umístěn na C:ProgramDataDockerDesktop
v systému Windows a ~/Library/Containers/com.docker.docker/Data/vms/0/
v systému macOS.