Cleaning Up Docker Disk Space In WSL2
July 18, 2021 0:02Ruang hard-disk adalah sumber daya paling terbatas di laptop saya. Saya memiliki SSD 512Gb yang saya perjuangkan untuk tetap berada di bawah rekomendasi ruang kosong 25% (125Gb) untuk drive ini. Penggunaan Docker dalam development adalah salah satu tantangan untuk hal ini — Docker terlalu mudah untuk mengumpulkan banyak Images dalam waktu yang sangat singkat.
Seperti gambar dibawah ini :
Saya benar-benar terkejut melihat bahwa drive virtual (VHDX) yang digunakan Docker di WSL2 telah membengkak hingga 31,6Gb! Saat itulah saya memutuskan untuk mulai melakukan langkah-langkah pembersihan resmi untuk Docker, termasuk pendekatan terakhir yang kurang dikenal yang saya gunakan untuk akhirnya merebut kembali sebagian besar ruang disk itu.
Perintah Pembersihan yang Direkomendasikan
Tempat pertama untuk memulai adalah menghapus semua container yang berhenti dan tidak berjalan. Anda dapat melihatnya dengan perintah docker ps -a. Kecuali jika Anda berencana untuk memulai kembali salah satu images ini, mereka tidak menghabiskan ruang. Anda dapat menghapusnya dengan menjalankan docker system prune . Docker bahkan akan memberi tahu Anda berapa banyak ruang yang berhasil diambil kembali.
Langkah selanjutnya adalah melihat daftar container dan menghapus yang tidak Anda butuhkan lagi. Anda dapat melihat daftar semua container docker di komputer Anda dengan perintah docker ps, dan menghapus containeryang tidak diperlukan dengan menggunakan perintah docker rm $ (docker ps –a –q). Bergantung pada berapa banyak container yang Anda kumpulkan dari waktu ke waktu, ini dapat menghemat cukup banyak ruang disk.
Sekarang setelah Anda menghapus semua container yang tidak Anda perlukan lagi, sekarang saatnya menjalankan pemangkasan docker images untuk menghapus i,ages yang menggantung. Ini adalah images layer yang tidak ada hubungannya dengan gambar lain di Docker dan tidak lagi diperlukan.
Alih-alih menjalankan masing-masing perintah prune sebelumnya secara individual, Anda dapat menggunakan perintah docker sistem prune -–all –volume –force, yang melakukan pemangkasan pada container, gambar, dan beberapa komponen lain yang tidak terlalu membutuhkan penyimpanan di dalam Docker.
Pada titik ini, Anda seharusnya mendapatkan kembali cukup banyak ruang. Lihat ukuran file VHDX Anda yang terletak di C:\\AppData\Local\Docker\wsl. Jika ukuran yang ditampilkan adalah tentang apa yang Anda harapkan relatif terhadap jumlah gambar yang Anda miliki, maka Anda sudah selesai. Tetapi jika Anda seperti saya, dan ukuran VHDX masih lebih besar dari jumlah gambar yang Anda miliki, maka inilah saatnya untuk pembersihan yang lebih dalam.
Ruang disk saya untuk penyimpanan docker masih belum berubah di 31,6 Gb.
Opsi Nuklir
Setelah sedikit Googling, saya menemukan thread ini di repositori Docker GitHub dengan orang lain yang memiliki masalah serupa. Tampaknya tidak peduli seberapa sedikit gambar yang Anda miliki, Docker VHDX menolak untuk mengembalikan ruang disk yang pernah dibutuhkan. Sayangnya, satu-satunya solusi yang berhasil adalah masuk ke Docker Desktop, klik tombol troubleshoot, dan tekan tombol Clean / Purge data.
Itu berhasil bagi saya, dengan mengorbankan semua gambar yang telah saya pull. Ini harga yang kecil untuk dibayar mengingat Docker menggunakan lebih dari 5% ruang disk saya.
Membersihkan Adalah Sebuah Tugas
Ada banyak cara untuk membersihkan ruang disk yang digunakan oleh Docker di WSL2. Tetapi tampaknya bahkan dengan semua perintah itu, terkadang Anda harus memulai dengan yang bersih.
Beri tahu saya di komentar di bawah jika Anda menemukan solusi lain yang tidak terlalu drastis untuk masalah ini.
Comments are closed.