Docker Mac OS X のディスク使用率が継続的に増加

Docker Mac OS X のディスク使用率が継続的に増加

私は最新バージョンの Docker (1.8.2) を Mac OS X 10.10.5 (Yosemite) の最新バージョンdocker-machine(0.4.1) で実行しています。ストック ホストで実行している標準の CentOS 6 コンテナーは 2 つだけですdocker-machine。特別な構成はなく、コンテナーは実際には何も実行していません... bash シェルだけです。

df -h時間が経つにつれて、コンテナとホスト マシン (つまり ) の両方でディスク使用率が 100% まで上昇することが報告されますdocker-machine。また、コンテナをシャットダウンするまで、Mac のファンが作動して速度が上昇する音も聞こえます。

何らかの不正なプロセスがコンテナ内のローカルファイルシステムを拡大させているのではないかと考えましたが、du -hs /報告されているのは数百 MB だけです。

私は Docker を使い始めたばかりで、この問題の原因を突き止めることができません。ディスク使用率がこのように制御不能に増大する原因は何でしょうか?

編集1:df -hとの出力を追加df -i

コンテナからのディスク使用量

[root@99e23f7c4ae6 /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
none             19G   18G     0 100% /
tmpfs           499M     0  499M   0% /dev
shm              64M     0   64M   0% /dev/shm
tmpfs           499M     0  499M   0% /sys/fs/cgroup
/dev/sda1        19G   18G     0 100% /etc/hosts
tmpfs           499M     0  499M   0% /proc/kcore
tmpfs           499M     0  499M   0% /proc/timer_stats

[root@99e23f7c4ae6 /]# df -i
Filesystem      Inodes IUsed   IFree IUse% Mounted on
none           1218224 28199 1190025    3% /
tmpfs           127518    17  127501    1% /dev
shm             127518     1  127517    1% /dev/shm
tmpfs           127518    11  127507    1% /sys/fs/cgroup
/dev/sda1      1218224 28199 1190025    3% /etc/hosts
tmpfs           127518    17  127501    1% /proc/kcore
tmpfs           127518    17  127501    1% /proc/timer_stats

[root@99e23f7c4ae6 /]# du -hs /
du: cannot access '/proc/348/task/348/fd/3': No such file or directory
du: cannot access '/proc/348/task/348/fdinfo/3': No such file or directory
du: cannot access '/proc/348/fd/4': No such file or directory
du: cannot access '/proc/348/fdinfo/4': No such file or directory
610M    /

ホストからのディスク使用量

docker@default:~$ df -h
Filesystem                Size      Used Available Use% Mounted on
tmpfs                   896.6M    115.3M    781.3M  13% /
tmpfs                   498.1M     72.0K    498.0M   0% /dev/shm
/dev/sda1                18.2G     18.2G         0 100% /mnt/sda1
cgroup                  498.1M         0    498.1M   0% /sys/fs/cgroup
none                    464.8G    224.6G    240.2G  48% /Users
/dev/sda1                18.2G     18.2G         0 100% /mnt/sda1/var/lib/docker/aufs
none                     18.2G     18.2G         0 100% /mnt/sda1/var/lib/docker/aufs/mnt/99e23f7c4ae608b2354c9375a0e3a7513692b44297c24d143a6b92dd73dae611
df: /var/run/docker/netns/99e23f7c4ae6: Permission denied

docker@default:~$ df -i
Filesystem              Inodes      Used Available Use% Mounted on
tmpfs                   124.5K      4.4K    120.2K   3% /
tmpfs                   124.5K         3    124.5K   0% /dev/shm
/dev/sda1                 1.2M     27.5K      1.1M   2% /mnt/sda1
cgroup                  124.5K        11    124.5K   0% /sys/fs/cgroup
none                      1000         0      1000   0% /Users
/dev/sda1                 1.2M     27.5K      1.1M   2% /mnt/sda1/var/lib/docker/aufs
none                      1.2M     27.5K      1.1M   2% /mnt/sda1/var/lib/docker/aufs/mnt/99e23f7c4ae608b2354c9375a0e3a7513692b44297c24d143a6b92dd73dae611
df: /var/run/docker/netns/99e23f7c4ae6: Permission denied

答え1

で新しいコンテナを起動するたびにdocker run、基本的には開始時の元のイメージから分岐するため、操作内容によっては、意味もなくスペースを占有している非常に類似したイメージが多数存在する可能性があります。また、Mac では、Docker は VirtualBox ベースの VM によってホストされるため、すべての Docker イメージが合計ディスク領域を共有することにも留意する必要があります。

私は Docker を使い始めたばかりなので、この問題に対処するにはもっと良い方法があるはずですが、以下は私が解決した方法です。必ずしもすべてのコンテナーを削除する必要はないかもしれませんが、これにより Docker の状態についてある程度の洞察が得られます。

  • 初期化されたコンテナを確認してください: docker ps -a(-a一部は実行されていないため)
  • 既存のコンテナをすべて停止します。 docker stop `docker ps -a|cut -f 1 -d ' '|xargs`

  • すべて削除する既存のコンテナ: docker rm `docker ps -a|cut -f 1 -d ' '|xargs`

  • すべて削除する「名前のない」(<none>)画像。私は独自の画像を作成して遊んでいましたが、そのほとんどは未使用でした。 docker rmi `docker images|grep -i none|sed -e 's/ \{1,\}/ /g'| cut -d ' ' -f 3|xargs`

その後、私は自分のスペースを取り戻しました。

関連情報