web-dev-qa-db-ja.com

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

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を使用して、OSX10.9.4で実行されているdocker1.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%が消費されました!明らかに、私のすべての画像の間に、私が理解していないある種の共有ディスクがあります...

15
esilverberg

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

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

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

注:boot2dockerは非推奨になり、DockerToolboxが採用されました。そのバージョンにアップグレードすることをお勧めします。その場合は、「boot2dockerinit」の代わりに「docker-machinecreate」を使用します。 docker-toolboxに切り替えたため、boot2dockerinitに必要なコマンドオプションをテストできません

1
nagu

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

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

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

0
Queasy

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

0
bbaassssiiee

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

不良ドライブがディスク容量を台無しにする方法の例として、Windowsにまだデータが残っていることを報告する1TBドライブをバックアップしました[〜#〜]ペタバイト[〜#〜]データが残っています乗り換え。

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

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

0
Tim G