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

Cara Memeriksa Penggunaan Ruang Disk untuk Gambar, Wadah, dan Volume Docker

Ingin tahu berapa banyak ruang yang dikonsumsi Docker di sistem Linux Anda?

Terutama, semua image Docker, container, dan entitas terkait lainnya terletak di /var/lib/docker . Anda dapat memeriksa ukuran direktori ini dan mendapatkan total ruang disk yang digunakan oleh Docker:

[email protected]:~$ sudo du -sh /var/lib/docker4.9G /var/lib/docker 

Tapi itu tidak terlalu deskriptif dan Anda mungkin harus melangkah lebih jauh di direktori ini untuk melihat komponen mana yang menggunakan ruang apa.

Untungnya, Docker telah menyediakan alat untuk mendapatkan informasi ini dengan cara yang lebih berguna.

Memeriksa penggunaan ruang disk Docker [Cara Docker]

Cara "Docker" yang paling dasar untuk mengetahui berapa banyak ruang yang digunakan oleh image, container, volume lokal, atau cache build adalah:

df sistem buruh pelabuhan 

Saat Anda menjalankan perintah ini (gunakan sudo jika perlu), Anda mendapatkan semua informasi penggunaan disk yang dikelompokkan berdasarkan komponen Docker.

[email protected]:~$ docker system dfTYPE TOTAL ACTIVE SIZE DAPAT DIULANG Gambar 4 4 1.065GB 0B (0%)Wadah 4 4 5.705kB 0B (0%)Volume Lokal 7 7 1.108GB 0B (0% )Bangun Cache 0 0 0B 0B 

Ini jelas lebih baik daripada melihat ukuran total /var/lib/docker. Anda dapat melihat seberapa banyak ruang yang digunakan oleh gambar, wadah, dan volume.

Namun, ini tetap memberikan gambaran yang jelas tentang gambar atau volume mana yang membutuhkan lebih banyak ruang.

Sebenarnya, itu benar. df sistem buruh pelabuhan perintah memiliki opsi verbose -v yang memberikan semua detail ini.

sistem buruh pelabuhan df -v 

Inilah keluaran verbose:

[email protected]:~$ docker system df -vImages space usage:REPOSITORY TAG ID GAMBAR DIBUAT UKURAN BERBAGI UKURAN UNIK KONTAINERSghost 4.32.0 b40265427368 8 minggu lalu 468.8MB 0B 468.8MB 1jrcs/letsencrypt-nginx -proxy-companion terbaru 037cc4751b5a 13 bulan yang lalu 24.35MB 0B 24.35MB 1jwilder/nginx-proxy terbaru 509ff2fb81dd 15 bulan yang lalu 165MB 0B 165MB 1mariadb 10.5.3 f5d2bcaf057b 20 bulan yang lalu 407MB 0B 407MB 1Container COMOLUMD ID IMOCTAINTED COLUMD IMOCTAINTED penggunaan ruang:NAMA STATUS899cc90e85d9 ghost:4.32.0 "docker-entrypoint.s..." 1 0B 8 minggu lalu Naik 8 minggu ghost_gho st_617b58fdafbce jrcs/letsencrypt-nginx-proxy-companion "/bin/bash /app/entr..." 4 571B 3 bulan lalu Naik 2 bulan letsencrypt-proxy-companion58f99f46ee03 jwilder/nginx-proxy "/app/docker-entrypo..." 5 5.13 kB 3 bulan lalu Naik 2 bulan jwilder-nginx-proxyfb907286b60e mariadb:10.5.3 "docker-entrypoint.s..." 1 2B 3 bulan lalu Naik 2 bulan ghost_db_1Volume Lokal penggunaan ruang:VOLUME NAME LINKS UKURANghostdb 1 434.7MBjwilder-nginx-with- ssl_acme 2 36.09kBjwilder-nginx-with-ssl_certs 2 25.12kBjwilder-nginx-with-ssl_dhparam 1 1.525kBjwilder-nginx-with-ssl_html 2 1.106kBjwilder-nginx-with-ssl_vhost SIZE CREATED penggunaan 2 556Bghost 1 CREATED PENGGUNAAN YANG TERAKHIR DIGUNAKAN DIBAGI 

Itu bagus, kan? Ada cara lain juga.

Memeriksa ukuran gambar buruh pelabuhan

Jika Anda hanya ingin melihat gambar Docker dan ukurannya, Anda juga dapat menggunakan perintah ini:

gambar buruh pelabuhan ls 

Ini mencantumkan semua gambar Docker di sistem Anda dengan beberapa detail yang mencakup ukurannya:

[email protected]:~$ docker image lsREPOSITORY TAG ID GAMBAR DIBUAT UKURANbusybox terbaru beae173ccac6 6 minggu yang lalu 1.24MBubuntu terbaru fb52e22af1b0 5 bulan yang lalu 72.8MBalpine terbaru 49f356fa4513 10 bulan yang lalu 5.61MBhello-world d terbaru 1165f221234 13.3kB 

Memeriksa ukuran container yang sedang berjalan

Demikian pula, jika Anda ingin mengetahui ukuran menjalankan wadah Docker, Anda dapat menggunakan perintah docker ps:

docker ps --size 

Anda akan melihat kolom SIZE ditambahkan ke output dari perintah:

[email protected]:~$ docker ps --sizeCONTAINER ID IMAGE COMMAND STATUS YANG DIBUAT NAMA PORT SIZE1171dcfb7e06 alpine "sleep 10" 10 bulan lalu Naik 9 detik selalu-kebijakan 0B (virtual 5,61MB) 

Apakah Anda memperhatikan bagaimana dikatakan 0B dan kemudian menunjukkan 5,61 MB virtual? Ukuran virtual mencakup gambar dasar yang dibagikan.

Mari kita kembali ke pendekatan Linux secara lebih spesifik, dengan image dan container Alpine sebagai contoh langsung.

Menggunakan perintah Linux standar untuk menganalisis penggunaan ruang disk Docker

Setiap kali Anda menggunakan docker pull perintah atau jalankan docker-compose up -d untuk mempersiapkan peluncuran aplikasi, ini adalah cara Anda mencari penggunaan ruang gambar, sebenarnya disimpan di server Ubuntu 20.04:

sudo du -sh /var/lib/docker/overlay2// 

Di sini, Overlay2 adalah driver penyimpanan Docker default di Ubuntu. Anda dapat mengonfirmasi ini dengan menjalankan docker info perintah dan mencari Driver Penyimpanan:

Driver Penyimpanan:overlay2 

Jika ini berbeda dari milik Anda, maka Anda menggunakan driver penyimpanan yang berbeda untuk Docker. Demikian juga, lokasi direktori akan dinamai sesuai dengan driver penyimpanan yang sama. Ketersediaan driver penyimpanan tergantung pada dukungan kernel.

Penggunaan Disk Gambar Tertentu

Jika Anda mencari lokasi gambar tertentu, Anda dapat menggunakan perintah inspeksi Docker untuk gambar yang ditarik. Katakanlah, misalnya, saya telah menarik gambar alpine dengan docker pull alpine . Jalankan perintah berikut untuk memeriksanya:

$ docker memeriksa alpine 

Setelah Anda menjalankan perintah, Anda akan melihat tiga bidang di dalam Data subbagian di bawah GraphDriver :

... "GraphDriver":{ "Data":{ "MergedDir":"/var/lib/docker/overlay2/64c9c0cf8c9cfb0e2168071df0652a317d49f58a68fe86e4a9a9a525ab9e365e/merged", "/UpperDir":"/var/lib" overlay2/64c9c0cf8c9cfb0e2168071df0652a317d49f58a68fe86e4a9a9a525ab9e365e/diff", "WorkDir":"/var/lib/docker/overlay2/64c9c0cf8c9cfb0e2168071df0652a399a}kerja... 

Berdasarkan informasi di atas, Anda dapat melihat bahwa (disebutkan sebelumnya di du sintaks perintah) dalam hal ini adalah 64c9c0cf8c9cfb0e2168071df0652a317d49f58a68fe86e4a9a9a525ab9e365e .

Di sini, Anda dapat menjalankan perintah berikut untuk menampilkan jumlah ruang yang digunakan oleh gambar Alpine:

[email protected]:~$ sudo du -sh /var/lib/docker/overlay2/64c9c0cf8c9cfb0e2168071df0652a317d49f58a68fe86e4a9a9a525ab9e365e6.0M /var/lib/docker/overlay02/14c9afafed9865869e365e6.0M /var/lib/docker/overlay

Demikian pula, seperti gambar, wadah juga disimpan di dalam direktori berbasis driver penyimpanan yang sama.

/var/lib/docker/overlay2 

Penggunaan Disk Kontainer Khusus

Jika Anda mencari lokasi wadah tertentu, Anda dapat kembali menggunakan inspect perintah di Docker untuk wadah yang sedang berjalan. Katakanlah, misalnya, saya telah menjalankan wadah alpine dengan docker run -ti -d alpine . Saat Anda menjalankan docker ps , Anda akan melihatnya berjalan:

$ docker psCONTAINER ID IMAGE COMMAND NAMA PORT STATUS DIBUAT SCb341d6a28fa alpine "/bin/sh" 6 detik yang lalu Naik 5 detik confidence_banzai 

Di sini, wadah telah diberi nama secara acak confident_banzai . Jadi mari kita periksa:

$ buruh pelabuhan memeriksa keyakinan_banzai 

Setelah Anda menjalankan perintah di atas, Anda akan melihat keempat bidang yang disebutkan sebelumnya di dalam Data subbagian di bawah GraphDriver . Lokasi ini adalah tempat data container disimpan secara fisik di sistem host Anda seperti yang Anda lihat untuk gambar:

... "GraphDriver":{ "Data":{ "LowerDir":"/var/lib/docker/overlay2/d734685e284c92bdcb6063ac292a48813f30f4b0b2dd6fa2882279c569e506a3-init/diff:/var/lib/docker/overlay2/64c9c0cf8c9cfb0e2168071df0652a317d49f58a68fe86e4a9a9a525ab9e365e/ diff", "MergedDir":"/var/lib/docker/overlay2/d734685e284c92bdcb6063ac292a48813f30f4b0b2dd6fa2882279c569e506a3/merged", "UpperDir":"/var/lib/docker/overlay2/d734685e284c92bdcb6063ac292a48813f30f4b0b2dd6fa2882279c569e506a3/diff", "WorkDir":"/var/lib /docker/overlay2/d734685e284c92bdcb6063ac292a48813f30f4b0b2dd6fa2882279c569e506a3/work" }, "Name":"overlay2" },... 

Sekarang Anda dapat menggunakan du perintah lagi:

[email protected]:~$ sudo du -sh /var/lib/docker/overlay2/d734685e284c92bdcb6063ac292a48813f30f4b0b2dd6fa2882279c569e506a332K /var/lib/docker/overlay284c7346856bdc48460369622dc4846039685279284c734685

Tidak seperti gambar dan wadah Docker, lokasi fisik untuk volume cukup mudah. Volume terletak di:

/var/lib/docker/volumes/ 

Oleh karena itu, Anda dapat menjalankan perintah berikut untuk mengetahui seluruh penggunaan ruang disk volume Docker di sistem Anda:

avimanyu @iborg-desktop:~$ sudo du -sh /var/lib/docker/volumes/60K /var/lib/docker/volumes/ 

Penggunaan Disk Volume Tertentu

Dalam hal ini, ada dua jenis terutama. Salah satunya adalah volume Docker reguler dan yang lainnya adalah pengikatan mount.

Volume Docker

Jika Anda mencari lokasi volume tertentu, Anda dapat menggunakan docker volume ls perintah terlebih dahulu dan periksa nama volume atau ID. Katakanlah, misalnya, saya telah menjalankan wadah alpine dengan perintah berikut dengan volume:

docker run -ti -d --name alpine-container -v test-data:/var/lib/app/content alpine 

Sekarang, volume bernama test-data otomatis akan dibuat. Sekarang mari kita buat file bernama test.md di dalam lokasi ini:

$ docker exec alpine-container sh -c "touch /var/lib/app/content/test.md" 

Pastikan file benar-benar telah dibuat:

$ docker exec -ti alpine-container sh/ # ls /var/lib/app/content/test.md/ # exit 

Saat Anda menjalankan docker volume ls , volume bernama test-data akan terdaftar:

$ volume buruh pelabuhan lsDRIVER VOLUME NAMElocal d502589845f7ae7775474bc01d8295d9492a6c26db2ee2c941c27f3cac4449d1local e71ee3960cfef0a133d323d146a1382f3ccode25803724a-bccode258056480a 

Terakhir, Anda dapat mengonfirmasi lokasi sebenarnya dari file di sistem host Anda:

$ sudo ls -l /var/lib/docker/volumes/test-data/_datatotal 0-rw-r--r-- 1 root root 0 6 Okt 23:20 test.md 

Oleh karena itu, jalur untuk volume yang dipasang selalu berada di dalam direktori bernama _data di dalam direktori volume masing-masing.

Jadi, Anda dapat menggunakan du perintah di sini lagi untuk volume tertentu!:

[email protected]:~$ sudo du -sh /var/lib/docker/volumes/test-data/_data4.0K /var/lib/docker/volumes/test-data/_data 

Selalu ingat untuk mencatat nama volume setiap kali Anda ingin mengetahui berapa banyak ruang yang digunakan volume Anda.

Ikat Dudukan

Ini adalah satu-satunya pengecualian di Docker di mana Anda harus menggunakan pendekatan Linux untuk memantau penggunaan ruang disk. Pada saat yang sama, selalu lebih baik untuk menghentikan container yang sedang berjalan terlebih dahulu.

$ mkdir /home/avimanyu/test-data$ docker run -ti -d --name alpine-container -v /home/avimanyu/test-data:/var/lib/app/content alpine 

Dalam hal ini, volume yang dipasang mengikat bernama test-data akan tersedia di sisi penampung sebagai /var/lib/app/content .

[email protected]:~$ sudo du -sh /home/avimanyu/test-data4.0K /home/avimanyu/test-data 

Anda juga dapat menguji hal yang sama di dalam wadah:

[email protected]:~$ sudo docker exec -ti alpine-container sh/ # du -sh /var/lib/app/content4.0K /var/lib/app/content 

Seperti yang Anda lihat, kedua ukuran yang dilaporkan di atas sama karena sebenarnya adalah pengikat.

Log Docker pada host selalu disimpan dalam volume. Menggunakan cara yang dijelaskan di bagian ini, pengguna juga dapat menavigasi dan mengetahuinya dengan melihat penggunaan ruang disk volume docker. Ini bervariasi dari aplikasi ke aplikasi dan lokasi file log di volume aplikasi.

Tips Bonus

Berdasarkan apa yang Anda pelajari sampai sekarang, sangat jelas, Anda juga dapat menggunakan perintah berikut untuk mengambil penggunaan disk gambar dan wadah bersama-sama:

sudo du -sh /var/lib/docker/overlay2 

Log Docker pada host selalu disimpan dalam volume. Volume Docker yang biasanya besar kemungkinan besar menunjukkan bahwa log telah menumpuk dan dikelola secara tidak efisien.

Cara Memeriksa Log Docker [Tersimpan atau Waktu Nyata]Jelajahi dan pelajari beberapa cara menarik untuk mempermudah pengelolaan log di Docker. Buku Pegangan LinuxAvimanyu Bandyopadhyay

Menggunakan cara yang dijelaskan di bagian volume artikel ini, pengguna juga dapat menavigasi dan mengurangi ini dengan melihat penggunaan ruang disk volume buruh pelabuhan. Ini bervariasi dari aplikasi ke aplikasi dan lokasi file log di volume aplikasi.

Ringkasan

Dalam tutorial ini, saya telah mengambil pendekatan berbasis Linux generik untuk menunjukkan kepada Anda cara mengetahui hunian ruang disk dari image, container, dan volume Docker yang berada di server Linux Anda di tingkat host. Anda juga mempelajari cara melakukannya dengan cara yang disukai (Docker).

Jika Anda ingin berbagi umpan balik, komentar, atau saran tentang pendekatan ini, silakan tinggalkan pemikiran Anda di bagian komentar di bawah


Docker
  1. Cara Menghapus Semua Gambar Docker, Wadah, Volume, Jaringan, dan Sumber Daya yang Tidak Digunakan

  2. Bagaimana Menemukan Ruang Disk Gratis Dan Menganalisis Penggunaan Disk ??

  3. Cara Menggunakan Gambar Docker, Wadah, dan File Docker Secara Mendalam

  1. Bagaimana cara memeriksa penggunaan disk dari direktori dan penggunaan bandwidth?

  2. Cara memeriksa status dan ruang yang digunakan oleh gambar dan wadah

  3. Cara mencadangkan dan memulihkan wadah Docker

  1. Cara Mengekspor dan Mengimpor Kontainer Docker

  2. Cara Menjeda dan Melanjutkan Wadah Docker

  3. Bagaimana cara memeriksa ruang disk di Ubuntu 20.04 dan 20.10?