Android

Cara menghapus wadah buruh pelabuhan, gambar, volume, dan jaringan

Developer Keynote: Get to the Fun Part (Cloud Next '19)

Developer Keynote: Get to the Fun Part (Cloud Next '19)

Daftar Isi:

Anonim

Docker memungkinkan Anda untuk dengan cepat membangun, menguji, dan menggunakan aplikasi sebagai wadah portabel dan mandiri yang dapat berjalan hampir di mana saja.

Docker tidak menghapus objek yang tidak digunakan seperti wadah, gambar, volume, dan jaringan kecuali Anda secara eksplisit menyuruhnya melakukannya. Saat Anda bekerja dengan Docker, Anda dapat dengan mudah mengakumulasikan sejumlah besar objek yang tidak digunakan yang menggunakan ruang disk yang signifikan dan mengacaukan output yang dihasilkan oleh perintah Docker.

Panduan ini berfungsi sebagai "lembar contekan" untuk membantu pengguna Docker mengatur sistem mereka, dan membebaskan ruang disk dengan menghapus wadah, gambar, volume, dan jaringan Docker yang tidak digunakan.

Menghapus Semua Objek Yang Tidak Digunakan

Perintah docker system prune akan menghapus semua kontainer yang berhenti, semua gambar yang menjuntai, dan semua jaringan yang tidak digunakan:

docker system prune

Anda akan diminta untuk melanjutkan, gunakan -f atau --force untuk memotong prompt.

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all build cache Are you sure you want to continue?

docker system prune --volumes

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all build cache Are you sure you want to continue? y

Menghapus Wadah Docker

Kontainer Docker tidak dihapus secara otomatis saat Anda menghentikannya kecuali Anda memulai container menggunakan flag --rm .

Hapus satu atau lebih wadah

Untuk menghapus satu atau lebih gambar Docker gunakan perintah docker container rm diikuti oleh ID dari wadah yang ingin Anda hapus.

Anda bisa mendapatkan daftar semua kontainer dengan mengirimkan -a flag ke perintah docker container ls :

docker container ls -a

Outputnya akan terlihat seperti ini:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc3f2ff51cab centos "/bin/bash" 2 months ago Created competent_nightingale cd20b396a061 solita/ubuntu-systemd "/bin/bash -c 'exec …" 2 months ago Exited (137) 2 months ago systemd fb62432cf3c1 ubuntu "/bin/bash" 3 months ago Exited (130) 3 months ago jolly_mirzakhani

Setelah Anda mengetahui CONTAINER ID dari wadah yang ingin Anda hapus, berikan kepada perintah docker container rm . Misalnya, untuk menghapus dua kontainer pertama yang tercantum dalam output di atas:

docker container rm cc3f2ff51cab cd20b396a061

Error response from daemon: You cannot remove a running container fc983ebf4771d42a8bd0029df061cb74dc12cb174530b2036987575b83442b47. Stop the container before attempting removal or force remove.

Hapus semua kontainer yang berhenti

Sebelum melakukan perintah penghapusan, Anda bisa mendapatkan daftar semua kontainer yang tidak berjalan (dihentikan) yang akan dihapus menggunakan perintah berikut:

docker container ls -a --filter status=exited --filter status=created

Untuk menghapus semua kontainer yang dihentikan gunakan perintah docker container prune :

docker container prune

Anda akan diminta untuk melanjutkan, gunakan -f atau --force untuk memotong prompt.

WARNING! This will remove all stopped containers. Are you sure you want to continue? y

Hapus wadah menggunakan filter

Perintah docker container prune memungkinkan Anda untuk menghapus kontainer berdasarkan kondisi menggunakan flag - filter filter.

Pada saat penulisan artikel ini, filter yang didukung saat ini until dan label . Anda dapat menggunakan lebih dari satu filter dengan menggunakan beberapa flag --filter .

Misalnya, untuk menghapus semua gambar yang dibuat lebih dari 12 jam yang lalu, jalankan:

docker container prune --filter "until=12h"

Hentikan dan hapus semua wadah

Anda bisa mendapatkan daftar semua kontainer Docker di sistem Anda menggunakan perintah docker container ls -aq .

Untuk menghentikan semua kontainer yang sedang berjalan gunakan perintah docker container stop diikuti oleh daftar semua ID kontainer.

docker container stop $(docker container ls -aq)

Setelah semua kontainer dihentikan, Anda dapat menghapusnya menggunakan perintah docker container rm diikuti oleh daftar ID kontainer.

docker container rm $(docker container ls -aq)

Menghapus Gambar Docker

Hapus satu atau lebih gambar

Untuk menghapus satu atau lebih gambar Docker gunakan perintah docker images ls untuk menemukan ID gambar yang ingin Anda hapus.

docker image ls

Outputnya akan terlihat seperti ini:

REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 75835a67d134 7 days ago 200MB ubuntu latest 2a4cca5ac898 2 months ago 111MB linuxize/fedora latest a45d6dca3361 3 months ago 311MB java 8-jre e44d62cf8862 3 months ago 311MB

Setelah Anda menemukan gambar yang ingin Anda hapus, berikan IMAGE ID ke perintah docker image rm . Misalnya, untuk menghapus dua gambar pertama yang tercantum dalam output yang dijalankan di atas:

docker image rm 75835a67d134 2a4cca5ac898

Error response from daemon: conflict: unable to remove repository reference "centos" (must force) - container cd20b396a061 is using its referenced image 75835a67d134

Hapus gambar yang menggantung

Docker menyediakan perintah docker image prune yang dapat digunakan untuk menghapus gambar yang menggantung dan tidak terpakai.

Gambar yang menggantung adalah gambar yang tidak ditandai dan tidak digunakan oleh wadah apa pun. Untuk menghapus jenis gambar yang menggantung:

docker image prune

Anda akan diminta untuk melanjutkan, gunakan -f atau --force untuk memotong prompt.

WARNING! This will remove all dangling images. Are you sure you want to continue? y Saat menghapus gambar yang menggantung, jika gambar yang Anda buat tidak ditandai, mereka juga akan dihapus.

Hapus semua gambar yang tidak digunakan

Untuk menghapus semua gambar yang tidak direferensikan oleh wadah yang ada, tidak hanya yang menggantung, gunakan perintah prune dengan tanda -a :

docker image prune -a

WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? y

Hapus gambar menggunakan filter

Dengan perintah docker image prune , Anda juga dapat menghapus gambar berdasarkan kondisi tertentu menggunakan filter - flag --filter .

Pada saat penulisan artikel ini, filter yang didukung saat ini until dan label . Anda dapat menggunakan lebih dari satu filter dengan menggunakan beberapa flag --filter .

Misalnya, untuk menghapus semua gambar yang dibuat lebih dari 12 jam yang lalu, Anda akan menjalankan:

docker image prune -a --filter "until=12h"

Menghapus Volume Docker

Hapus satu atau lebih volume

Untuk menghapus satu atau lebih volume Docker gunakan perintah docker volume ls untuk menemukan ID volume yang ingin Anda hapus.

docker volume ls

Outputnya akan terlihat seperti ini:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

Setelah Anda menemukan VOLUME NAME dari volume yang ingin Anda hapus, berikan kepada perintah docker volume rm . Misalnya, untuk menghapus volume pertama yang tercantum dalam output di atas, jalankan:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

Error response from daemon: remove 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163: volume is in use -

Hapus semua volume yang tidak digunakan

Untuk menghapus semua volume yang tidak digunakan, gunakan perintah docker image prune :

docker volume prune

Anda akan diminta untuk melanjutkan, gunakan -f atau --force untuk memotong prompt.

WARNING! This will remove all local volumes not used by at least one container. Are you sure you want to continue?

Menghapus Jaringan Docker

Hapus satu atau lebih jaringan

Untuk menghapus satu atau lebih jaringan Docker gunakan perintah docker network ls untuk menemukan ID jaringan yang ingin Anda hapus.

docker network ls

Outputnya akan terlihat seperti ini:

NETWORK ID NAME DRIVER SCOPE 107b8ac977e3 bridge bridge local ab998267377d host host local c520032c3d31 my-bridge-network bridge local 9bc81b63f740 none null local

Setelah Anda menemukan jaringan yang ingin Anda hapus, berikan NETWORK ID mereka ke perintah docker network rm . Misalnya untuk menghapus jaringan dengan nama my-bridge-network dijalankan:

docker network rm c520032c3d31

Error response from daemon: network my-bridge-network id 6f5293268bb91ad2498b38b0bca970083af87237784017be24ea208d2233c5aa has active endpoints

Hapus semua jaringan yang tidak digunakan

Gunakan perintah docker network prune untuk menghapus semua jaringan yang tidak digunakan.

docker network prune

Anda akan diminta untuk melanjutkan, gunakan -f atau --force untuk memotong prompt.

WARNING! This will remove all networks not used by at least one container. Are you sure you want to continue?

Hapus jaringan menggunakan filter

Dengan perintah docker network prune Anda dapat menghapus jaringan berdasarkan kondisi menggunakan bendera filter - filter.

Pada saat penulisan artikel ini, filter yang didukung saat ini until dan label . Anda dapat menggunakan lebih dari satu filter dengan menggunakan beberapa flag --filter .

Misalnya, untuk menghapus semua jaringan yang dibuat lebih dari 12 jam yang lalu, jalankan:

docker network prune -a --filter "until=12h"

Kesimpulan

Dalam panduan ini, kami telah menunjukkan kepada Anda beberapa perintah umum untuk menghapus wadah Docker, gambar, volume, dan jaringan.

Anda juga harus memeriksa dokumentasi Docker resmi.

buruh pelabuhan