Загрузка диска Docker Mac OS X постоянно растет

Загрузка диска Docker Mac OS X постоянно растет

Я использую последнюю версию Docker (1.8.2) на Mac OS X 10.10.5 (Yosemite) с последней docker-machine(0.4.1). У меня есть только два контейнера vanilla CentOS 6, запущенных на стандартном docker-machineхосте. Никакой специальной конфигурации нет, контейнеры на самом деле вообще ничего не запускают… просто оболочки bash.

Со временем я вижу, что использование диска увеличивается df -hдо 100% как на контейнерах, так и на хост-машине (т. е. docker-machine). Я также слышу, как вентилятор на моем Mac включается и ускоряется, пока я не выключу контейнеры.

Я думал, что, возможно, какой-то вредоносный процесс приводит к увеличению размера локальной файловой системы внутри контейнеров, но du -hs /в отчете указано всего несколько сотен МБ.

Я относительно новичок в 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`

После этого я вернул себе свое пространство.

Связанный контент