logo

Odstráňte všetky kontajnery a obrázky v Dockeri

Predpoklad: Docker

In Docker , ak sme opustili kontajner bez toho, aby sme ho zastavili, potom ich musíme zastaviť manuálne, pretože sa nezastavil pri výstupe. Podobne v prípade obrázkov ich musíme odstrániť zhora nadol, pretože niektoré kontajnery alebo obrázky môžu závisieť od základných obrázkov, základný obrázok si môžeme kedykoľvek stiahnuť na. Preto je dobré odstrániť nechcené alebo visiace obrázky z aktuálneho zariadenia.



Ako odstrániť obrázky v Docker?

Odstrániť obrázok

Na vymazanie obrázku podľa ImageId/Name môžeme použiť nasledujúci príkaz. Ak sa chcete dozvedieť viac o tom, ako vytvoriť obrázok docker pomocou Dockerfile, pozrite si Koncept Dockerfile.

docker rmi>

Vynútiť odstránenie obrázka

Ak chcete vynútiť odstránenie obrázkov ukotvenia podľa ImageID/Name, môžeme použiť nasledujúci príkaz.

docker rmi -f>

Poznámka: Keď je kontajner spustený, nemôžeme obrázky odstrániť násilím alebo normálne.



Visiace obrázky

Visiace obrázky sú tie, ktoré sa nemapujú ani na úložisko, ani na značku. Použitý príkaz je odstrániť visiace obrázky. Ak sa chcete dozvedieť viac o tom, ako označovať obrázky Docker, pozrite si Značky obrázkov Docker .

docker image prune>

Odstránenie všetkých obrázkov

Môžeme odstrániť všetky obrázky v docker-machine, aby sme odstránili nežiaduci neporiadok a priestor v systéme. V každom prípade môžeme získať najnovšiu verziu alebo konkrétny obrázok verzie z registra dockerov alebo z vyrovnávacej pamäte.

docker rmi $(docker images -q)>
Odstráňte všetky obrázky.

Ako odstrániť kontajnery v Dockeri

Pred odstránením kontajnerov musíme kontajner najskôr zastaviť, na čo použijeme príkaz.



docker stop>

Rozdiel medzi Docker Stop a Docker Kill

Docker stop najskôr vyšle signál SIGTERM a potom proces ukončí signálom SIGKILL a lehotou odkladu. Keď Docker kill odošle SIGKILL, okamžite ukončí proces.

  • Zastaviť všetky spustené kontajnery: Na zastavenie nádob, ktoré nevystúpili. Môže sa to stať, keď príkaz použitý v obrázku Docker zostane spustený. Príkaz by mal byť ukončený a to následne zastaví kontajner. Ak chcete zastaviť kontajner, keď ste kontajner neopustili zastavením príkazu, musíte spustiť nasledujúci príkaz.
docker stop $(docker ps -aq)>
  • Odstrániť kontajner: Ak je kontajner zastavený, potom môžeme použiť nasledujúci príkaz na odstránenie kontajnera.
docker rm>
    Vynútiť odstránenie kontajnera: Pomocou nižšie uvedeného príkazu môžeme vynútiť odstránenie kontajnerov, keď sú spustené, bez toho, aby sme ich zastavili.
docker rm -f>
Zastavte kontajnery

Odstráňte všetky kontajnery

Ak chcete odstrániť všetky kontajnery z dokovacieho stroja, musíme získať ID všetkých kontajnerov. Pomocou príkazu môžeme jednoducho získať ID kontajnerov docker ps -aq , potom pomocou príkazu docker rm môžeme odstrániť všetky kontajnery v docker-machine.

docker rm $(docker ps -aq)>
Odstráňte všetky nádoby

Odstráňte všetky zastavené nádoby

Na odstránenie všetkých kontajnerov, ktoré sú zastavené/opustené, môžeme použiť filtre v argumente príkazu ps. Nemôžeme priamo odstrániť kontajner, ak nie je zastavený. Kontajnery, ktoré nie sú ukončené alebo sú spustené, môžeme zastaviť použitím argumentu -f k príkazu ps v dockeri, možnosť -f alebo –filter prevezme filter ako status=exited alebo status=running alebo name atď. Môžeme odfiltrovať a zastaviť konkrétne kontajnery podľa požiadavky.

docker rm $(docker ps -aq --filter status='exited')>

Po odfiltrovaní kontajnera, ktorý je spustený, môžeme použiť príkaz stop na zastavenie týchto kontajnerov pomocou -q, aby sme umlčali číselné identifikátory spojené s týmito kontajnermi.

docker stop $(docker ps --filter status=running -q)>

Tým sa zastavia všetky kontajnery, a tak môžeme kontajnery vybrať z dokovacieho stroja. Dokonca môžeme filtrovať kontajnery, ktoré sú tu zastavené, aby sme odstránili iba tie, ktorých stav je ukončený.

docker rm $(docker ps --filter status=exited -q)>
odstráňte zastavené kontajnery.
  • Nasledujúci príkaz odstránil všetky kontajnery, ktoré sú v existujúcom stave. To znamená, že kontajnery sa zastavili.
docker container prune>
Docker kontajner Prune