Kontejnery jsou úžasné, pokud jde o testování a nasazení projektu. Pokud však vytvoříte více kontejnerů, mohou kontejnery rychle zabírat místo na disku.
V tomto návodu pro začátečníky Docker vám ukážu, jak odstranit kontejnery dockeru.
V nejjednodušší podobě můžete kontejner dockeru odebrat pomocí příkazu docker rm:
docker rm container_id_or_name
Pokud chcete odstranit všechny kontejnery, zastavte nejprve ty běžící a poté je odstraňte:
docker ps -q | xargs docker stop
docker ps -q | xargs docker rm
Ale s kontejnery nebudete mít vždy jednoduchý život. A to je důvod, proč ukážu různé scénáře, ve kterých můžete odstranit kontejnery dockeru.
Praktické příklady odstraňování ukotvovacích kontejnerů
Jak můžete hádat, abyste mohli odstranit kontejner, musíte znát jeho název nebo ID. Všechny kontejnery dockeru ve vašem systému (jak zastavené, tak spuštěné) můžete zkontrolovat pomocí příkazu docker ps takto:
[email protected]:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
07e97581c5d8 debian "bash" 9 minutes ago Up 9 minutes container2
6ef4545eef37 ubuntu "bash" 11 minutes ago Up 11 minutes container1
707e40ce3c5a ubuntu "/bin/bash" 15 minutes ago Exited (0) 15 minutes ago boring_payne
8047ab8e3673 ubuntu "/bin/bash" 34 minutes ago Exited (0) 15 minutes ago relaxed_wiles
ce84231ab213 debian "bash" 42 minutes ago Exited (0) 42 minutes ago bold_golick
12a18eaa291b hello-world "/hello" 2 days ago Exited (0) 2 days ago brave_mendeleev
První sloupec udává ID kontejneru a poslední sloupec udává název kontejneru. Můžete si také všimnout, že spuštěné kontejnery dockeru mají ve sloupci Stav hodnotu „Nahoru“.
Nyní, když víte, jak získat ID a název kontejneru, pojďme se podívat, jak je odstranit:
Odebrat kontejner dockeru
Toto je nejjednodušší. ID nebo název kontejneru použijete tímto způsobem:
docker rm container_id_or_name
Ve výstupu se nezobrazí zpráva jako kontejner odstraněn. Zobrazuje pouze ID nebo název kontejneru, který jste zadali.
[email protected]:~$ docker rm 12a18eaa291b
12a18eaa291b
Odebrání běžícího kontejneru
Pokud je kontejner spuštěn a pokusíte se jej odstranit, zobrazí se tato chyba:
[email protected]:~$ docker rm container1
Error response from daemon: You cannot remove a running container 6ef4545eef378788e5e9d7ac1cf2e0a717480608adb432be99fd9b3d3a604c12. Stop the container before attempting removal or force remove
Zcela jasně byste měli nejprve zastavit kontejner dockeru a poté jej odstranit:
docker stop container_id_or_name
docker rm container_id_or_name
Vynutit odstranění běžícího kontejneru dockeru (nedoporučuje se)
Docker vám dává možnost -f k vynucení odstranění kontejneru. Pomocí tohoto můžete odstranit běžící kontejner:
docker rm -f container_id_or_name
To se nedoporučuje, protože odesílá příkaz kill a váš kontejner nemusí uložit svůj stav.
Odebrání více kontejnerů dockeru
Při odebírání můžete zadat více než jeden kontejner ukotvitelného panelu:
docker rm container1 container2 container3
Odstranění více kontejnerů dockeru spojených s konkrétním obrázkem dockeru
V příkladu řekněme, že chcete odstranit všechny kontejnery spojené s docker image ubuntu.
Doporučuji vám nejprve zastavit kontejnery:
docker ps -a -q --filter ancestor=ubuntu | xargs docker stop
A poté odstraňte tyto kontejnery:
docker ps -a -q --filter ancestor=ubuntu | xargs docker rm
Pro vysvětlení výše uvedeného příkazu docker ps
výstup příkazu byl filtrován pomocí kontejnerů spojených s obrazem ubuntu a poté pomocí -q
možnost zadat pouze ID kontejneru. Zkombinujte jej s příkazem xargs a vložte ID kontejneru (přidružených k Ubuntu) do příkazu docker rm.
Odstranění všech zastavených kontejnerů
Pokud chcete odstranit všechny zastavené kontejnery, můžete je filtrovat podle jejich stavu a poté je zastavit tímto způsobem:
docker ps -a -q -f status=exited | xargs docker rm
Odebrat všechny kontejnery Docker
Pokud chcete ze systému odstranit všechny kontejnery, měli byste nejprve zastavit všechny kontejnery a poté je odstranit:
docker ps -q | xargs docker stop
docker ps -q | xargs docker rm
Doufám, že se vám tento Docker tutoriál líbil. Zůstaňte naladěni na další.