私は最新バージョンの 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`
その後、私は自分のスペースを取り戻しました。