GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Panduan Lengkap untuk Menghapus Gambar Docker

Jika Anda terus membuat gambar buruh pelabuhan, Anda akan segera kehabisan ruang. Menghapus gambar buruh pelabuhan lama dan tidak terpakai akan mengosongkan banyak ruang disk untuk Anda.

Dalam artikel ini, saya akan membahas berbagai skenario penghapusan gambar buruh pelabuhan dari sistem Anda.

Cara menghapus gambar buruh pelabuhan

Pertama, periksa gambar buruh pelabuhan yang ada di sistem Anda dengan perintah ini:

docker images

Output akan menampilkan semua gambar buruh pelabuhan dan ID gambarnya. Anda memerlukan nama gambar ini (di bawah kolom repositori) atau ID Gambar untuk menghapus gambar buruh pelabuhan dari sistem Anda.

[email protected]:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              latest              67e34c1c9477        2 weeks ago         114MB
ubuntu              latest              775349758637        6 weeks ago         64.2MB

Dengan ID Gambar, Anda dapat menghapus gambar buruh pelabuhan dengan cara berikut:

docker rmi image_name_or_id

Anda juga dapat menggunakan perintah ini karena keduanya sama:

docker image rm image_id

Berikut adalah tampilan outputnya:

[email protected]:~$ docker rmi 67e34c1c9477
Untagged: debian:latest
Untagged: [email protected]:79f0b1682af1a6a29ff63182c8103027f4de98b22d8fb50040e9c4bb13e3de78
Deleted: sha256:67e34c1c9477023c0ce84c20ae5af961a6509f9952c2ebbf834c5ea0a286f2b8
Deleted: sha256:f2b4f0674ba3e6119088fe8a98c7921ed850c48d4d76e8caecd7f3d57721b4cb

Jika Anda menggunakan ID gambar, itu akan menghapus semua gambar yang terkait dengan ID tersebut.

Hapus gambar buruh pelabuhan yang terkait dengan wadah

Hidup akan jauh lebih sederhana jika Anda bisa menghapus gambar buruh pelabuhan seperti itu. Tapi itu tidak sering terjadi.

Jika Anda memiliki wadah yang terkait dengan gambar buruh pelabuhan, Anda akan menemukan beberapa kesalahan saat mencoba menghapus gambar.

[email protected]:~$ docker rmi 775349758637
Error response from daemon: conflict: unable to delete 775349758637 (cannot be forced) - image is being used by running container 13dc0f4226dc

Anda harus menghentikan wadah terlebih dahulu:

[email protected]:~$ docker stop 13dc0f4226dc
13dc0f4226dc

Masalahnya adalah bahwa meskipun Anda menghentikan penampung, ia akan tetap mengeluh jika Anda mencoba untuk menghapus gambar:

[email protected]:~$ docker rmi 67e34c1c9477
Error response from daemon: conflict: unable to delete 67e34c1c9477 (must be forced) - image is being used by stopped container 5ced86b1fcee

Anda memiliki dua opsi di sini:

  • Hapus paksa gambar buruh pelabuhan (wadah terkait akan tetap ada di sistem)
  • Hapus wadah terkait, lalu hapus gambar buruh pelabuhan

Untuk memaksa menghapus gambar buruh pelabuhan, Anda dapat menggunakan opsi -f:

docker rmi -f image_id

Untuk menghapus wadah dan kemudian menghapus gambar, Anda dapat menggunakan sesuatu seperti ini:

docker rm container_id
docker rmi image_id

Hapus gambar buruh pelabuhan yang terkait dengan beberapa wadah

Hidup masih akan sedikit lebih sederhana jika gambar buruh pelabuhan dikaitkan hanya dengan satu wadah. Tetapi sebuah gambar dapat memiliki beberapa wadah yang terkait dengannya dan menghapus gambar buruh pelabuhan semacam itu akan merepotkan.

Anda akan melihat kesalahan seperti ini:

[email protected]:~$ docker rmi 775349758637
Error response from daemon: conflict: unable to delete 775349758637 (must be forced) - image is referenced in multiple repositories

Pertama, Anda perlu menemukan semua wadah yang terkait dengan nama gambar (bukan ID).

docker ps -a -q --filter ancestor=docker_image_name
  • -opsi menampilkan semua container yang sedang berjalan dan yang dihentikan.
  • -q opsi hanya menampilkan ID penampung.

Dan kemudian Anda harus menghentikan semuanya. Anda dapat menggunakan ID penampung satu per satu tetapi itu akan terlalu memakan waktu. Anda dapat menggunakan keajaiban pipa dan xargs untuk menghentikan semua wadah yang terkait dengan gambar:

docker ps -a -q --filter ancestor=ubuntu | xargs docker stop

Kemudian Anda dapat menghapus wadah yang dihentikan atau memaksa menghapus gambar (seperti yang Anda lihat di bagian sebelumnya).

Jika Anda ingin menghapus semua wadah yang terkait dengan gambar, jalankan saja perintah ini:

docker ps -a -q --filter ancestor=ubuntu | xargs docker rm

Dan sekarang Anda dapat menghapus gambar buruh pelabuhan menggunakan perintah yang ditunjukkan sebelumnya dalam tutorial ini.

Menghapus beberapa gambar buruh pelabuhan sekaligus

Anda juga dapat menghapus beberapa gambar buruh pelabuhan dalam satu perintah tunggal. Ini sama dengan perintah sebelumnya. Anda hanya perlu menentukan ID gambar atau nama gambar.

docker rmi image_id_1 image_id_2 image_id_3

Tentu saja, Anda harus menghentikan semua container yang sedang berjalan yang terkait dengan gambar.

Hapus semua gambar buruh pelabuhan yang tidak terpakai dan menggantung sekaligus

Sebelum Anda melihatnya, izinkan saya menjelaskan apa yang tidak digunakan dan gambar yang menggantung:

Gambar buruh pelabuhan apa pun yang memiliki wadah apa pun yang terkait dengannya (berhenti atau berjalan) adalah gambar bekas. Jika gambar buruh pelabuhan tidak memiliki wadah yang terkait, itu menjadi gambar buruh pelabuhan yang tidak digunakan.

Gambar buruh pelabuhan yang menjuntai “berarti Anda telah membuat versi baru dari gambar tersebut, tetapi tidak diberi nama baru. Jadi gambar lama yang Anda miliki menjadi gambar yang menjuntai. Gambar lama tersebut adalah gambar yang tidak ditandai dan menampilkan pada namanya saat Anda menjalankan perintah 'gambar buruh pelabuhan'.”

Jika Anda ingin menghapus gambar yang menggantung, Anda dapat menggunakan opsi pangkas:

docker image prune

Jika Anda ingin menghapus gambar yang tidak digunakan dan menggantung sekaligus, Anda dapat menggunakan prune dengan opsi -a:

docker image prune -a

Anda akan melihat ruang yang dikosongkan di akhir output:

[email protected]:~$ 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/N] y
Deleted Images:
untagged: ubuntu:latest
untagged: [email protected]:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d
untagged: debian:latest
untagged: [email protected]:79f0b1682af1a6a29ff63182c8103027f4de98b22d8fb50040e9c4bb13e3de78
deleted: sha256:67e34c1c9477023c0ce84c20ae5af961a6509f9952c2ebbf834c5ea0a286f2b8
deleted: sha256:f2b4f0674ba3e6119088fe8a98c7921ed850c48d4d76e8caecd7f3d57721b4cb
untagged: fedora:latest
untagged: [email protected]:d4f7df6b691d61af6cee7328f82f1d8afdef63bc38f58516858ae3045083924a
deleted: sha256:f0858ad3febdf45bb2e5501cb459affffacef081f79eaa436085c3b6d9bd46ca
deleted: sha256:2ae3cee18c8ef9e0d448649747dab81c4f1ca2714a8c4550eff49574cab262c9

Total reclaimed space: 308.3MB

Anda bisa sedikit pintar dengan perintah prune dan hanya menghapus gambar lama yang tidak terpakai dan menggantung. Jadi jika Anda ingin menghapus yang lebih lama dari 24 jam, gunakan seperti ini:

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

Hapus semua gambar buruh pelabuhan dari sistem Anda

Mungkin Anda berada dalam lingkungan pengujian dan ingin memulai dari awal dengan menghapus semua gambar buruh pelabuhan.

Untuk menghapus semua image buruh pelabuhan, Anda harus terlebih dahulu menghentikan semua container yang sedang berjalan.

docker ps -a -q | xargs docker rm

Sekarang Anda dapat menghapus semua gambar dengan cara ini:

docker images -a -q | xargs docker rmi -f

Itu dia. Saya pikir itu cukup bahan referensi untuk menghapus gambar buruh pelabuhan dan Anda harus memiliki pemahaman yang lebih baik tentang topik ini sekarang. Anda juga dapat melihat tutorial untuk menghapus container buruh pelabuhan.

Jika Anda memiliki pertanyaan atau saran, silakan tinggalkan komentar di bawah.


Docker
  1. Apa itu Docker Container:Panduan Pengantar untuk Pemula

  2. Cara Memindahkan Gambar Docker antar Host

  3. Cara Berbagi Gambar Docker Dengan Orang Lain

  1. Panduan Lengkap Pemula untuk Docker Logging

  2. Cara Memodifikasi Gambar Docker

  3. Pengantar Gambar Docker

  1. Docker Bagian 4:membangun dan memublikasikan gambar buruh pelabuhan khusus

  2. Memulai dengan Gambar Docker yang Dibuat Sebelumnya

  3. imagemagick untuk pengoptimalan gambar