Saya dapat melihat bahwa Docker membutuhkan 12GB sistem file saya:
2.7G /var/lib/docker/vfs/dir
2.7G /var/lib/docker/vfs
2.8G /var/lib/docker/devicemapper/mnt
6.3G /var/lib/docker/devicemapper/devicemapper
9.1G /var/lib/docker/devicemapper
12G /var/lib/docker
Tapi, bagaimana saya tahu bagaimana ini didistribusikan di atas wadah?
Saya mencoba melampirkan ke wadah dengan menjalankan (perintah v1.3 baru)
docker exec -it <container_name> bash
dan kemudian jalankan 'df -h' untuk menganalisis penggunaan disk. Tampaknya berfungsi, tetapi tidak dengan wadah yang menggunakan 'volume-dari'.
Misalnya, saya menggunakan wadah data saja untuk MongoDB, yang disebut 'mongo-data'.
Ketika saya menjalankan docker run -it --volumes-from mongo-data busybox
, dan kemudian df -h
di dalam kontainer, Dikatakan bahwa filesystem yang dipasang pada /data/db
(hanya data mongo-data 'saya) menggunakan 11.3G, tetapi ketika saya melakukannya du -h /data/db
, ia mengatakan bahwa ia hanya menggunakan 2.1G.
Jadi, bagaimana cara menganalisis penggunaan disk wadah / volume? Atau, dalam kasus saya, bagaimana cara mengetahui ukuran kontainer 'mongo-data'?
sumber
docker-squash
utilitas Jason Wilder . Dapatkan dari GitHub di sini: github.com/jwilder/docker-squashJawaban:
Untuk melihat ukuran file wadah Anda, Anda dapat menggunakan
--size
argumendocker ps
:sumber
docker ps -s
tidak memperhitungkan log yang tersimpan di dalam / var / lib / docker /.27.2MB (virtual 173MB)
apa perbedaan di antara mereka?Setelah 1.13.0, Docker menyertakan perintah baru
docker system df
untuk menunjukkan penggunaan disk docker.Untuk menampilkan informasi lebih rinci tentang penggunaan ruang:
sumber
docker system df --verbose > docker.stats-2019-07-18.log
Posting ini sebagai jawaban karena komentar saya di atas disembunyikan:
Daftar ukuran wadah:
Daftar ukuran volume wadah:
Sunting: Sebutkan semua ukuran dan volume kontainer yang sedang berjalan:
CATATAN: Ubah 'devicemapper' sesuai dengan sistem file Docker Anda (mis. 'Aufs')
sumber
/var/lib/docker/devicemapper: No such file or directory
. Tahu di mana devicemapper disimpan di mac?du
perintah di dalam host boot2docker Anda, VM. Perintah ini juga bisa gagal jika Anda menggunakanaufs
alih-alih perangkat mapper.Bagian volume tidak berfungsi lagi jadi jika ada yang diinput saya hanya mengubah sedikit script di atas:
sumber
(jawaban ini tidak berguna, tetapi meninggalkannya di sini karena beberapa komentar mungkin)
docker images
akan menampilkan 'ukuran virtual', yaitu berapa total termasuk semua lapisan bawah. Jadi beberapa penghitungan ganda jika Anda memiliki wadah yang berbagi gambar dasar yang sama.dokumentasi
sumber
Saya gunakan
docker stats $(docker ps --format={{.Names}}) --no-stream
untuk mendapatkan:sumber
Kamu bisa memakai
untuk melihat bagaimana ukuran gambar dibagi antara berbagai sub-komponennya.
sumber
Ingatlah bahwa itu
docker ps --size
mungkin perintah yang mahal, membutuhkan lebih dari beberapa menit untuk menyelesaikannya. Hal yang sama berlaku untuk permintaan API daftar kontainer dengansize=1
. Lebih baik tidak menjalankannya terlalu sering.Lihatlah alternatif yang kami kompilasi, termasuk
du -hs
opsi untuk direktori volume persisten buruh pelabuhan.sumber
Meningkatkan Maxime's anwser:
docker ps --size
Anda akan melihat sesuatu seperti ini:
Saat memulai sebuah wadah, gambar dari mana wadah itu dimulai dipasang hanya-baca (virtual) .
Selain itu, layer yang dapat ditulis sudah terpasang, di mana setiap perubahan yang dibuat pada wadah ditulis.
Jadi ukuran Virtual (183MB dalam contoh) hanya digunakan satu kali, terlepas dari berapa banyak wadah yang dimulai dari gambar yang sama - saya dapat mulai 1 kontainer atau seribu; tidak ada ruang disk tambahan yang digunakan .
"Ukuran" (2B dalam contoh) adalah unik per wadah, jadi total ruang yang digunakan pada disk adalah:
183MB + 5B + 2B
Perlu diketahui bahwa ukuran yang ditampilkan tidak termasuk semua ruang disk yang digunakan untuk wadah.
Hal-hal yang tidak termasuk saat ini adalah;
- volume
- swapping
- pos pemeriksaan
- ruang disk yang digunakan untuk file-file log yang dihasilkan oleh kontainer
https://github.com/docker/docker.github.io/issues/1520#issuecomment-305179362
sumber