Docker Mac OS X 磁碟使用率不斷成長

Docker Mac OS X 磁碟使用率不斷成長

我在 Mac OS X 10.10.5 (Yosemite) 上執行最新版本的 Docker (1.8.2) 和最新版本docker-machine(0.4.1)。我只有兩個普通 CentOS 6 容器在庫存docker-machine主機上運行。沒有特殊的配置,容器實際上根本沒有運行任何東西......只是 bash shell。

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 的虛擬機器託管,因此所有 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`

在那之後,我又找回了自己的空間。

相關內容