Moby: Что делать в случае, если размер файла данных Docker достигает порога 100G?

Созданный на 29 мар. 2016  ·  3Комментарии  ·  Источник: moby/moby

Вывод docker version :

Client:
 Version:      1.8.2-el7.centos
 API version:  1.20
 Package Version: docker-1.8.2-10.el7.centos.x86_64
 Go version:   go1.4.2
 Git commit:   a01dc02/1.8.2
 Built:        
 OS/Arch:      linux/amd64

Server:
 Version:      1.8.2-el7.centos
 API version:  1.20
 Package Version: 
 Go version:   go1.4.2
 Git commit:   a01dc02/1.8.2
 Built:        
 OS/Arch:      linux/amd64

Вывод docker info :

Containers: 0
Images: 130
Storage Driver: devicemapper
 Pool Name: docker-253:0-3221586422-pool
 Pool Blocksize: 65.54 kB
 Backing Filesystem: xfs
 Data file: /dev/loop4
 Metadata file: /dev/loop5
 Data Space Used: 107.4 GB
 Data Space Total: 107.4 GB
 Data Space Available: 0 B
 Metadata Space Used: 60.92 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.087 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.107-RHEL7 (2015-12-01)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.10.0-229.el7.x86_64
Operating System: CentOS Linux 7 (Core)
CPUs: 12
Total Memory: 31.2 GiB
Name: IP-5-14
ID: DNOS:FC2P:2WH4:OSYL:L2CH:U7HZ:MFL2:ZID3:SYTX:JWKP:TGIN:YYPB
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

Дополнительные сведения о среде (AWS, VirtualBox, физическая и т. д.):

Действия по воспроизведению проблемы:
Я хочу запустить свой образ докера с именем gateway, используя приведенную ниже команду (точка входа без демона была установлена ​​в Dockerfile шлюза)

docker run -d -P gateway

Опишите полученные результаты:
контейнер может работать как обычно

Опишите ожидаемые результаты:

[root@IP-5-14 devicemapper]# docker run -d -P gateway
Error response from daemon: Error running DeviceCreate (createSnapDevice) dm_task_run failed

Дополнительная информация, которую вы считаете важной (например, проблема возникает только изредка):

  1. как показывает docker info , пространство данных было увеличено до порога 100G.
  2. когда я удаляю контейнер, используя docker rm -f $(docker ps -a -q) . Все контейнеры были удалены, но сообщили об ошибке ниже:
Error response from daemon: Cannot destroy container 5d5eed10468b: Driver devicemapper failed to remove root filesystem 5d5eed10468b809475b0eb23bda167e1a962d32092a348936d56e27417dbf578: Error running DeleteDevice dm_task_run failed
  1. я использовал docker ps -a , чтобы убедиться, что все контейнеры были удалены после того, как я сделал шаг 2. Результат cmd пуст. но возникает ошибка (ниже), когда я удаляю НИ ОДНОГО изображения
[root@IP-5-14 devicemapper]# docker rmi 6fdebd7b0eb5   
Error response from daemon: Conflict, cannot delete because 6fdebd7b0eb5 is held by an ongoing pull or build
Error: failed to remove images: [6fdebd7b0eb5]

Кто-нибудь может оказать мне услугу? Большое спасибо

Самый полезный комментарий

Вам необходимо увеличить пул, разрешенный для ваших контейнеров. Для этого вам нужно будет удалить ваш var/lib/docker, который уничтожит все ваши контейнеры и образы.

sudo service docker stop
sudo rm -rf /var/lib/docker
sudo dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/data bs=1G count=0 seek=300
Это сделает ваше пространство для данных использованным 300GB

Это решает вашу проблему? Кроме того, попробуйте остановить процессы Docker, снова запустите Docker и посмотрите, сможете ли вы удалить образы.

Все 3 Комментарий

Вам необходимо увеличить пул, разрешенный для ваших контейнеров. Для этого вам нужно будет удалить ваш var/lib/docker, который уничтожит все ваши контейнеры и образы.

sudo service docker stop
sudo rm -rf /var/lib/docker
sudo dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/data bs=1G count=0 seek=300
Это сделает ваше пространство для данных использованным 300GB

Это решает вашу проблему? Кроме того, попробуйте остановить процессы Docker, снова запустите Docker и посмотрите, сможете ли вы удалить образы.

Devicemapper, которому не хватает места, может быть действительно очень сложным; Мы отслеживаем связанные с этим проблемы в https://github.com/docker/docker/issues/20272.

Для Docker 1.11 появилась новая возможность указать минимальное количество свободного места, которое необходимо сохранить, и это предотвратит появление такой ситуации; см. https://github.com/docker/docker/pull/20786

Я собираюсь закрыть эту тему, потому что я думаю, что это не ошибка, а вопрос поддержки, но вы можете продолжить обсуждение здесь.

Ладно. большое спасибо. Надежда на новые функции Docker1.11

Была ли эта страница полезной?
0 / 5 - 0 рейтинги