Dockerが新しいUbuntuイメージで100%のディスク使用量を報告するのはなぜですか?


15

Dockerを使用したり、新しいイメージを効果的に実行したりすることはできなくなりました。100%のディスク使用量があることが報告されています。ここで、ubuntuの初期コピーを起動しているのに、ディスクスペースが残っていないことがわかります。

$ 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

それとは別に、mysqlインスタンスを起動しようとしていますが、使用可能なディスクがないという事実に関連していると思われるエラーメッセージが表示されます。orchardup / mysqlを実行しようとすると、次のようになります。

ERROR: 1030  Got error 28 from storage engine

つまり、ストレージ容量が不足しています。

これを考えると、上記のdf -hレポートをどのように解釈する必要がありますか?また、ディスクの100%を消費しているものをどのように判断できますか?boot2dockerを使用して、OSX 10.9.4で実行しているdocker 1.3を実行しています。

ありがとう。


編集:回避策として、を実行してboot2docker deleteからを実行しましたが、boot2docker initすべての画像が破棄されたようです(残念ながら、dockerfilesで再構築できます)。さて、新鮮なubuntuイメージを開始すると:

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

良くなったね。しかし、私はまだ混乱しています。boot2dockerでホストされているすべてのイメージに、以前にいっぱいになった何らかの種類の共有グローバルディスクが必要ですか?


編集2:たくさんの画像をダウンロードしましたが、ubuntu画像を実行して空きディスク容量を確認すると、次のようになります。

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

3%から16%が消費されました!明らかに、私が理解していないすべての画像間に何らかの種類の共有ディスクがあります...


Dockerコンテナをどのように使用していますか?ユーザー/グループはどのように分散していますか?
linuxdev2013

回答:


1

Windowsホストでは、boot2dockerは仮想ボックスを使用して仮想マシンを作成することにより機能します。boot2docker initを実行すると、仮想マシンが作成され、デフォルトでルートディスクに20Gが割り当てられます。この仮想マシンは、実際のdockerデーモンを実行する最小限のLinux OSを実行します(dockerデーモンはWindowsでネイティブに実行されません-まだ)。

仮想マシンに接続されたディスクは、Dockerイメージのストレージを提供します。したがって、boot2docker initコマンドの追加オプションを調べて、初期ディスクサイズを増やすことができます。これにより、仮想マシンで使用可能なディスクサイズが増加しますが、Queasyが指摘したように、Dockerデーモンに追加オプションを追加して、イメージに使用可能なストレージを増やす必要があります。

コンテナで「df -h」を実行すると、報告される合計ディスクサイズは、「dm.basesize」オプションを使用してdockerデーモンに割り当てられたディスクスペースのサイズになります。

注:Docker Toolboxを支持して、boot2dockerは非推奨になりました。そのバージョンにアップグレードしたい場合は、「boot2docker init」の代わりに「docker-machine create」を使用します。docker-toolboxに切り替えたため、boot2docker initに必要なコマンドオプションをテストできません


0

/ etc / sysconfig / docker-storageのdocker configを変更し、次の行を追加します。

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

初期化されるとデータが削除されるため、このタスクを続行する前にドッカーをバックアップすることを忘れないでください。


--storage-optOSXではサポートされていません
Quanlong

0

ドライブが不良である可能性があることを考慮してください。Hitachi(Drive Fitness Test)、Seagate(Seatools)、およびWestern Digital(Western Digital Data Lifeguard)はすべて、これを判断するのに役立つ無料の診断ソフトウェアを提供しています。

不良ドライブがディスク領域にねじ込む方法の例として、1TBのドライブをバックアップしましたが、Windowsにはまだ転送するデータのPETABYTESが残っていることが報告されています。

ドライブに問題がない場合は、du(ディスク使用量)を使用して、どのフォルダーが大きいかを確認します。du -h /usr/bindu -h /varまたはdu -h /home/[username]/Downloads特定するのに役立ちます。

編集:OS Xを使用しているのを見ました:上記のHDDツールを起動可能なオプションとして使用するか、無料のWindows PEのようなもので使用する必要があります。


0

devicemapperは、Dockerのデフォルトのストレージエンジンです。/ var / lib / dockerでデフォルトで100Gbを事前に割り当てようとします。ただし、このスペースのすべてが実際に使用されるわけではなく、オプションで構成できます。Dockerドキュメント

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.