Android

Bagaimana untuk membuang kontena, imej, jilid, dan rangkaian docker

How-To Move Docker Container to Another Host With Data Volumes

How-To Move Docker Container to Another Host With Data Volumes

Isi kandungan:

Anonim

Docker membolehkan anda dengan cepat membina, menguji, dan menggunakan aplikasi sebagai bekas mudah alih, mandiri yang dapat berjalan hampir di mana saja.

Docker tidak membuang objek yang tidak digunakan seperti bekas, imej, jilid, dan rangkaian melainkan anda secara eksplisit memberitahunya untuk berbuat demikian. Semasa anda bekerja dengan Docker, anda boleh dengan mudah mengumpulkan sejumlah besar objek yang tidak digunakan yang menggunakan ruang cakera yang signifikan dan kekacauan output yang dihasilkan oleh perintah Docker.

Panduan ini berfungsi sebagai "kunci cheat" untuk membantu pengguna Docker mengekalkan sistem mereka, dan untuk membebaskan ruang cakera dengan mengeluarkan bekas, gambar, jilid dan rangkaian Docker yang tidak digunakan.

Mengeluarkan Semua Objek Tidak Digunakan

Perintah docker system prune akan mengeluarkan semua bekas yang dihentikan, semua imej yang ditarik dan semua rangkaian yang tidak digunakan:

docker system prune

Anda akan diminta untuk meneruskan, gunakan flag -f atau --force untuk memintas 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

Mengeluarkan Container Docker

--rm tidak dikeluarkan secara automatik apabila anda menghentikannya melainkan anda memulakan kontena menggunakan bendera --rm .

Keluarkan satu atau lebih bekas

Untuk mengalih keluar satu atau lebih imej Docker gunakan perintah docker container rm diikuti dengan ID kontena yang anda ingin alih keluar.

Anda boleh mendapatkan senarai semua bekas dengan lulus bendera-bendera ke perintah docker container ls :

docker container ls -a

Keluaran seharusnya kelihatan 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

Sebaik sahaja anda mengetahui CONTAINER ID dari bekas yang anda ingin padam, lulus ke perintah docker container rm . Contohnya, untuk mengeluarkan dua bekas pertama yang disenaraikan dalam output di atas berjalan:

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.

Keluarkan semua bekas yang berhenti

Sebelum melaksanakan perintah penyingkiran, anda boleh mendapatkan senarai semua bekas yang tidak berjalan (berhenti) yang akan dialih keluar dengan menggunakan arahan berikut:

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

Untuk mengalih keluar semua bekas yang berhenti menggunakan perintah docker container prune :

docker container prune

Anda akan diminta untuk meneruskan, gunakan flag -f atau --force untuk memintas prompt.

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

Keluarkan bekas menggunakan penapis

Peranti docker container prune membenarkan anda membuang bekas berdasarkan syarat menggunakan bendera - --filter .

Pada masa penulisan artikel ini, penapis yang disokong saat ini adalah until dan label . Anda boleh menggunakan lebih daripada satu penapis dengan menggunakan pelbagai --filter bendera --filter .

Contohnya, untuk mengalih keluar semua imej yang dibuat lebih daripada 12 jam yang lalu, jalankan:

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

Berhenti dan keluarkan semua bekas

Anda boleh mendapatkan senarai semua bekas Docker pada sistem anda menggunakan perintah docker container ls -aq .

Untuk menghentikan semua kontena yang sedang berjalan menggunakan arahan docker container stop diikuti dengan senarai semua ID kontena.

docker container stop $(docker container ls -aq)

Sebaik sahaja semua bekas dimatikan, anda boleh mengeluarkannya dengan menggunakan perintah docker container rm diikuti dengan senarai ID kontena.

docker container rm $(docker container ls -aq)

Mengalih keluar Imej Docker

Keluarkan satu atau lebih imej

Untuk mengeluarkan satu atau lebih imej Docker gunakan perintah docker images ls untuk mencari ID imej yang anda ingin alih keluar.

docker image ls

Keluaran seharusnya kelihatan 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

Sebaik sahaja anda telah melihat imej yang ingin anda keluarkan, lulus IMAGE ID mereka ke perintah docker image rm . Sebagai contoh, untuk mengeluarkan dua imej pertama yang disenaraikan dalam output di atas berjalan:

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

Keluarkan imej yang menggantung

Docker menyediakan perintah docker image prune yang boleh digunakan untuk membuang imej bergoyang dan tidak digunakan.

Imej menggantung adalah imej yang tidak ditandai dan tidak digunakan oleh mana-mana bekas. Untuk mengalih keluar jenis imej yang digantung:

docker image prune

Anda akan diminta untuk meneruskan, gunakan flag -f atau --force untuk memintas prompt.

WARNING! This will remove all dangling images. Are you sure you want to continue? y Apabila mengalih keluar imej yang ditelan, jika imej yang dibina oleh anda tidak ditandai, ia akan dikeluarkan juga.

Alih keluar semua imej yang tidak digunakan

Untuk mengalih keluar semua imej yang tidak dirujuk oleh mana-mana bekas sedia ada, bukan hanya yang menggantungnya, gunakan perintah prune dengan bendera -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

Keluarkan imej menggunakan penapis

Dengan perintah docker image prune , anda juga boleh mengeluarkan imej berdasarkan keadaan tertentu menggunakan bendera penapisan - --filter .

Pada masa penulisan artikel ini, penapis yang disokong saat ini adalah until dan label . Anda boleh menggunakan lebih daripada satu penapis dengan menggunakan pelbagai --filter bendera --filter .

Sebagai contoh, untuk menghapuskan semua imej yang dicipta lebih daripada 12 jam yang lalu, anda akan menjalankan:

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

Mengeluarkan Volum Docker

Keluarkan satu atau lebih jumlah

Untuk mengalih keluar satu atau lebih jumlah Docker gunakan arahan docker volume ls untuk mencari ID jilid yang anda ingin alih keluar.

docker volume ls

Keluaran seharusnya kelihatan seperti ini:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

Sebaik sahaja anda menemui VOLUME NAME daripada jumlah yang ingin anda keluarkan, docker volume rm command docker volume rm docker. Sebagai contoh, untuk mengeluarkan kelantangan pertama yang disenaraikan dalam output di atas, jalankan:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

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

Keluarkan semua volum yang tidak digunakan

Untuk mengalih keluar semua volum yang tidak digunakan gunakan perintah docker image prune :

docker volume prune

Anda akan diminta untuk meneruskan, gunakan flag -f atau --force untuk memintas prompt.

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

Mengeluarkan Rangkaian Docker

Keluarkan satu atau lebih rangkaian

Untuk mengalihkan satu atau lebih rangkaian Docker gunakan perintah docker network ls untuk mencari ID rangkaian yang anda ingin alih keluar.

docker network ls

Keluaran seharusnya kelihatan 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

Sebaik sahaja anda telah docker network rm ingin anda keluarkan, lulus NETWORK ID mereka kepada perintah docker network rm . Contohnya untuk membuang rangkaian dengan nama my-bridge-network :

docker network rm c520032c3d31

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

Keluarkan semua rangkaian yang tidak digunakan

Gunakan command docker network prune untuk menghapuskan semua rangkaian yang tidak digunakan.

docker network prune

Anda akan diminta untuk meneruskan, gunakan flag -f atau --force untuk memintas prompt.

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

Keluarkan rangkaian menggunakan penapis

Dengan perintah docker network prune anda boleh mengalih keluar rangkaian berdasarkan syarat menggunakan bendera penapisan - --filter .

Pada masa penulisan artikel ini, penapis yang disokong saat ini adalah until dan label . Anda boleh menggunakan lebih daripada satu penapis dengan menggunakan pelbagai --filter bendera --filter .

Sebagai contoh, untuk menghapus semua rangkaian yang dibuat lebih daripada 12 jam yang lalu, jalankan:

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

Kesimpulannya

Dalam panduan ini, kami telah menunjukkan kepada anda beberapa arahan umum untuk mengeluarkan bekas, gambar, jilid, dan rangkaian Docker.

Anda juga harus menyemak dokumentasi Docker rasmi.

docker