A Docker segítségével gyorsan csomagolhatja alkalmazásait konténerként, lehetővé téve azok futtatását bárhonnan a laptopjától a nyilvános felhőig. A Docker egy ideig tartó használata után nagy számú felesleges tároló, kép és egyéb erőforrás halmozódhat fel. Így lehet rendbe tenni őket.
Dokkmunkás általában nem törli bármit, hacsak nem mondja meg. Ez azt jelenti, hogy a kihúzott képek és az Ön által létrehozott tárolók valószínűleg még mindig lógnak a rendszeren, még akkor is, ha már nem használják őket.
A túl sok felesleges erőforrás gyorsan túlzott lemezhasználathoz vezethet. Sokkal hosszabb kimenetet eredményez az erőforrások parancssorba történő felsorolásakor is, ami megnehezíti a keresett információk megtalálását.
A lógó erőforrások metszése
„Lógó” erőforrás minden olyan Docker-objektum, amely jelenleg nincs társítva tárolóhoz. Ez magában foglalja a Docker képeket, hálózatokat és köteteket, valamint a leállított tárolókat. Képek esetén a kép „lógó”, ha nincs címkézve, és nincs hivatkozása.
A Docker egyetlen takarítási parancsot nyújt az összes lógó erőforrás és a leállított konténer megtisztításához. Hacsak egy erőforrást nem használ a futás tároló, akkor törlődik.
docker system prune
A parancs futtatásával megjelenik egy megerősítő üzenet, amely felsorolja a törölni kívánt erőforrástípusokat. típus y
és nyomja meg az Enter billentyűt a törlés folytatásához. A megerősítés kikapcsolásával a -f
vagy --force
zászló.
A kötetek alapértelmezés szerint nincsenek eltávolítva. A kötetek törlése veszélyeztetheti a tartós adatok elvesztését, amelyeket érdemes megőrizni. Ha el akarja távolítani azokat a köteteket, amelyek nincsenek társítva tárolóhoz, adja át a (z) --volumes
zászló, hogy felvegyék őket a műveletbe.
Még több képadatot törölhet a -a
(vagy --all
) zászló. Ez arra készteti a Dockert, hogy törölje az összeset felhasználatlan képek, nem csak függő, hivatkozás nélküli képek. A rendszer minden képe törlődik, kivéve, ha van legalább egy futó tároló, amely megköveteli.
Szűrők használata metszéskor
Szűrők használhatók a prune
parancs. A szűrés jobban szabályozza, hogy mi törlődik. Két szűrő támogatott jelenleg, until
és timestamp
.
until
– Auntil
szűrő megakadályozza az adott idő előtt létrehozott tárolók, képek és hálózatok törlését. Megadhatja az időt többféle formátumban, például egy Unix időbélyegző másodpercben (pl1614890000
) vagy dátum formátumú időbélyegző karakterlánc (pl2021-03-04T20:30:00
).label
– Alabel
A filter korlátozza a törlést, így csak az adott címkével rendelkező erőforrások törlődnek. A címkék tárolókkal, képekkel, hálózatokkal és kötetekkel együtt használhatók. Bármelyikként megadhatja a címkéketlabel=key=value
(az érték megegyezik az értékkel),label!=key=value
(a kulcs nem egyenlő az értékkel),label=key
(rendelkezik a megadott címkével) vagylabel!=key
(nem rendelkezik a megadott címkével).
Szűrő használatához adja át a --filter
zászló:
docker system prune --filter until=2021-03-04T20:30:00 --filter label=foo=bar
Ez a parancs törli az erőforrásokat a foo=bar
amelyek március 4-én 20:30 előtt jöttek létre. Bármely erőforrás, amely nem felel meg ennek a kritériumnak, érintetlen marad.
Az egyes erőforrástípusok metszése
Nem mindig kell használnia docker system prune
. A Docker részletesebb metszési parancsokat is biztosít. Ezeket akkor lehet használni, ha csak egy típusú erőforrást szeretne eltávolítani.
A --force
és --filter
zászlók által támogatott docker system prune
az alább felsorolt egyes metszésparancsokra is vonatkozik.
Konténerek metszése
A Docker napi parancsai gyorsan nagy számú leállított tárolót eredményezhetnek. A probléma elkeseredett, ha ön docker build
képek a --rm
jelzőt, mivel ez a köztes felépítési rétegeket megtartja.
Fuss docker container prune
kitakarítani a leállított edényeket. A leállított tárolók futás közben nem jelennek meg docker ps
; hogy lássa őket, használnia kell docker ps -a
hogy a rendszer összes tárolója megjelenjen.
Ha el akarja távolítani az egyes tartályokat, használja a docker rm
parancs átadja a konténer azonosítóját. Ezt futással megszerezheti docker ps
. Ha a tároló fut, akkor a --force
flag törléséhez.
Képek metszése
Használat docker image prune
hogy eltávolítson minden lógó képet. Tetszik docker system prune
, ez hatással lesz azokra a képekre, amelyek nincsenek címkézve, vagy amelyekre egyetlen tároló sem hivatkozik.
Adja hozzá a -a
zászló az összes fel nem használt kép törléséhez. Ez megtisztítja a rendszer minden olyan képét, amelyet legalább egy tároló nem igényel. A címkézett képek is szerepelnek benne, így gyorsan tisztázhatja a Docker Hub régi húzásait.
Egy adott képet eltávolíthat a docker rmi
parancs:
docker rmi wordpress:latest
Ha egy képnek több címkéje van, docker rmi
eltávolítja az adott címkét a kép tényleges törlése nélkül. Az utolsó címke eltávolítását követően törlődik.
Metszési hálózatok
A Docker hálózatokat nem törli automatikusan. Az idő múlásával nagy számmal végezhet. Ez feleslegessé teszi a rendszert redundáns virtuális híd eszközökkel és útválasztási táblázat bejegyzéseivel. Fuss docker network prune
a fel nem használt hálózatok megsemmisítése és a gazdagép konfigurációjának visszaállítása.
Futtatással törölheti az egyes hálózatokat docker rm my-network
.
Metszési kötetek
A Docker soha nem törli a kötetet. Tárolják a tárolók által létrehozott állandó adatokat, így a nem szándékos eltávolításnak pusztító következményei lehetnek. A köteteket több tároló is megoszthatja, vagy a jövőben egy másik tárolóhoz csatolható készenléti állapotban maradhat.
Ha fel akarja metszeni a fel nem használt köteteket, futtatnia kell docker volume prune
. Ez törli azokat a köteteket, amelyeket legalább egy tároló nem használ. Az egyes köteteket a gombbal lehet eltávolítani docker volume rm my-volume
.
A jövőbeli felhalmozódás megakadályozása
Csökkentheti a felesleges erőforrások jövőbeni felhalmozódásának kockázatát azáltal, hogy ügyel a továbbadásra --rm
zászló to docker build
és docker run
parancsokat.
Ha együtt használják build
, ez a köztes felépítési rétegek törlését fogja okozni ( <none>:<none>
ban ben docker images
) Kimenet. Ez a lemezhasználat jelentős csökkenését jelentheti. Rendszerint egy új közbenső réteg jön létre az egyes utasításokhoz Dockerfile
. Általában eltávolíthatja őket, kivéve, ha később egy új kép kiindulópontjaként kívánja felhasználni őket.
Használata --rm
val vel docker run
amint kilép a parancsából, eltávolítja a tárolót. Ez ideális, ha bináris programot használ egyszer használatos tárolóban. Ne adja át --rm
olyan konténerekhez, amelyeket örökké üzemeltetni kíván, vagy amelyeket igény szerint érdemes elindítani és leállítani. Ilyenek például a webes és adatbázis-kiszolgálók, amelyek egy szolgáltatást futtatnak a felhasználó által megadott parancs helyett.
Következtetés
A Docker-erőforrások metszése felszabadíthatja a lemezterületet, és elősegítheti a Docker CLI használatát. A felesleges tárolók és képek kiküszöbölése megkönnyíti a keresett erőforrások azonosítását.
Docker nem töröl semmit, hacsak nem mondja meg. Érdemes futni docker system prune
rendszeresen tisztán tartani a rendszert. Létrehozhat egy cron feladatot, amely havonta futtatja a until
szűrővel létrehozhat egy nemrégiben hozzáadott erőforrások megőrzési időszakát.