Mengapa buruh pelabuhan melaporkan penggunaan disk 100% pada gambar ubuntu yang baru?

15

Saya tidak lagi dapat menggunakan buruh pelabuhan atau menjalankan gambar baru secara efektif - dilaporkan bahwa saya memiliki 100% penggunaan disk. Di sini, Anda dapat melihat saya meluncurkan salinan ubuntu yang asli, namun ia memberi tahu saya bahwa saya tidak memiliki ruang disk tersisa:

$ docker run -t -i ubuntu /bin/bash
root@3838b70bd76e:/# df -h 
Filesystem      Size  Used Avail Use% Mounted on
rootfs           19G   18G     0 100% /
none             19G   18G     0 100% /
tmpfs          1005M     0 1005M   0% /dev
shm              64M     0   64M   0% /dev/shm
/dev/sda1        19G   18G     0 100% /etc/hosts
tmpfs          1005M     0 1005M   0% /proc/kcore

Secara terpisah, saya mencoba untuk memulai contoh mysql dan itu memberi saya pesan kesalahan yang saya yakini terhubung dengan fakta bahwa saya tidak memiliki disk yang tersedia. Ketika saya mencoba menjalankan orchardup ​​/ mysql, saya mendapatkan:

ERROR: 1030  Got error 28 from storage engine

Yang berarti sudah kehabisan ruang penyimpanan.

Mengingat ini, bagaimana saya harus menafsirkan laporan df-h di atas, dan bagaimana saya bisa menentukan apa yang mengkonsumsi 100% dari disk saya? Saya menjalankan docker 1.3, berjalan di OSX 10.9.4, menggunakan boot2docker.

Terima kasih.


Sunting: Sebagai solusi, saya telah menjalankan boot2docker delete, dan kemudian boot2docker init, dan tampaknya telah menghancurkan semua gambar saya (untungnya saya dapat membangunnya kembali dengan file docker saya ). Sekarang, ketika saya memulai gambar ubuntu baru:

root@f53d637e3d33:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           19G  373M   17G   3% /
none             19G  373M   17G   3% /
tmpfs          1005M     0 1005M   0% /dev
shm              64M     0   64M   0% /dev/shm
/dev/sda1        19G  373M   17G   3% /etc/hosts
tmpfs          1005M     0 1005M   0% /proc/kcore

Jauh lebih baik. Tapi, saya masih bingung, harus ada semacam disk global bersama di semua gambar yang di-host oleh boot2docker yang sebelumnya terisi?


Sunting 2: Saya baru saja mengunduh banyak gambar, dan sekarang inilah yang saya lihat ketika saya menjalankan gambar ubuntu dan memeriksa ruang disk kosong:

root@f53d637e3d33:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           19G  2.7G   15G  16% /
none             19G  2.7G   15G  16% /
tmpfs          1005M     0 1005M   0% /dev
shm              64M     0   64M   0% /dev/shm
/dev/sda1        19G  2.7G   15G  16% /etc/hosts
tmpfs          1005M     0 1005M   0% /proc/kcore

Dari 3% hingga 16% dikonsumsi! Jelas ada semacam disk bersama antara semua gambar saya yang saya tidak mengerti ...

esilverberg
sumber
Bagaimana Anda menggunakan wadah Docker dan bagaimana pengguna / grup tersebar (lebih ke kesalahan mysql) Juga, untuk buruh pelabuhan apakah mereka membagikan apa pun di host atau apakah mereka murni berisi sendiri?
linuxdev2013

Jawaban:

1

Pada host windows, boot2docker berfungsi dengan membuat mesin virtual menggunakan kotak virtual. ketika Anda menjalankan boot2docker init, ia menciptakan mesin virtual dan, secara default, menetapkan 20G ke disk root. mesin virtual ini menjalankan OS Linux minimal yang pada gilirannya menjalankan docker daemon yang sebenarnya (docker daemon tidak berjalan secara native di windows - belum).

disk yang terpasang pada mesin virtual menyediakan penyimpanan untuk gambar buruh pelabuhan. jadi Anda bisa melihat opsi tambahan untuk perintah init boot2docker untuk menambah ukuran disk awal. ini akan meningkatkan ukuran disk yang tersedia untuk digunakan di mesin virtual, tetapi seperti yang ditunjukkan Queasy, Anda perlu menambahkan opsi tambahan ke daemon buruh pelabuhan untuk meningkatkan penyimpanan yang tersedia untuk gambar.

ketika Anda menjalankan "df -h" dalam wadah, ukuran total disk yang dilaporkan adalah dari ruang disk yang dialokasikan untuk daemon buruh pelabuhan menggunakan opsi "dm.basesize".

catatan: boot2docker sekarang tidak digunakan lagi karena Docker Toolbox. Anda mungkin ingin memutakhirkan ke versi itu, dalam hal ini Anda akan menggunakan "buruh pelabuhan-mesin buat" bukan "boot2docker init". saya telah beralih ke docker-toolbox sehingga tidak dapat menguji opsi perintah yang diperlukan untuk boot2docker init

nagu
sumber
0

Ubah konfigurasi buruh pelabuhan di / etc / sysconfig / docker-storage dan tambahkan baris:

DOCKER_STORAGE_OPTIONS= --storage-opt dm.basesize=30G

Ingatlah untuk membuat cadangan buruh pelabuhan Anda sebelum melanjutkan dengan tugas ini karena itu akan menghapus data Anda setelah diinisialisasi.

Mual
sumber
--storage-opttidak didukung di OSX
Quanlong
0

Pertimbangkan bahwa drive mungkin buruk. Hitachi (Drive Fitness Test), Seagate (Seatools), dan Western Digital (Western Digital Data Lifeguard) semuanya menawarkan perangkat lunak diagnostik gratis untuk membantu Anda menentukan ini.

Sebagai contoh bagaimana drive yang buruk dapat mengacaukan dengan ruang disk, saya telah membuat cadangan drive 1TB yang melaporkan ke Windows bahwa mereka masih memiliki PETABYTES data yang tersisa untuk ditransfer.

Jika drive Anda baik-baik saja, gunakan du (Penggunaan Disk) untuk melihat folder mana yang besar. du -h /usr/bin, du -h /varatau du -h /home/[username]/Downloadsuntuk membantu menunjukkan dengan tepat.

Sunting: Saya melihat Anda menggunakan OS X: Anda harus menggunakan alat HDD yang disebutkan di atas sebagai opsi yang dapat di-boot atau dalam sesuatu seperti Windows PE gratis, yang kemudian dapat Anda boot ke dan menjalankan alat-alat ini.

Tim G
sumber
0

Devicemapper adalah mesin penyimpanan default docker. Mencoba untuk mengalokasikan 100Gb secara default di / var / lib / docker. Tidak semua ruang ini benar-benar digunakan, dan Anda dapat mengonfigurasinya dalam opsi. Dok dok

bbaassssiiee
sumber