Moby: Wie geht man mit dem Fall um, dass die Größe der Docker-Datendatei den Schwellenwert von 100 G erreicht?

Erstellt am 29. März 2016  ·  3Kommentare  ·  Quelle: moby/moby

Ausgabe von 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

Ausgabe von 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

Zusätzliche Umgebungsdetails (AWS, VirtualBox, physisch usw.):

Schritte zum Reproduzieren des Problems:
Ich möchte mein Docker-Image namens Gateway mit dem folgenden cmd ausführen. (In der Docker-Datei des Gateways wurde ein No-Daemon-Einstiegspunkt festgelegt.)

docker run -d -P gateway

Beschreiben Sie die Ergebnisse, die Sie erhalten haben:
Der Container kann wie gewohnt ausgeführt werden

Beschreiben Sie die erwarteten Ergebnisse:

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

Zusätzliche Informationen, die Sie für wichtig halten (z. B. tritt das Problem nur gelegentlich auf):

  1. Wie docker info zeigt, wurde der Datenraum auf die Schwelle von 100 GB angehoben.
  2. wenn ich den Container mit docker rm -f $(docker ps -a -q) lösche. Alle Container wurden entfernt, aber der folgende Fehler wurde gemeldet:
Error response from daemon: Cannot destroy container 5d5eed10468b: Driver devicemapper failed to remove root filesystem 5d5eed10468b809475b0eb23bda167e1a962d32092a348936d56e27417dbf578: Error running DeleteDevice dm_task_run failed
  1. Ich habe docker ps -a verwendet, um sicherzustellen, dass alle Container entfernt wurden, nachdem ich Schritt 2 ausgeführt hatte. Das cmd-Ergebnis ist leer. aber Fehler treten (unten) auf, wenn ich ein NONE-Bild lösche
[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]

Kann mir jemand einen Gefallen tun? Vielen Dank

Hilfreichster Kommentar

Sie müssen den für Ihre Container zulässigen Pool erhöhen. Dazu müssen Sie Ihre var/lib/docker entfernen, wodurch alle Ihre Container und Bilder zerstört werden.

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
Dadurch wird Ihr Speicherplatz auf 300 GB belegt

Löst dies Ihr Problem? Versuchen Sie außerdem, Docker-Prozesse zu stoppen, Docker erneut zu starten und zu sehen, ob Sie die Bilder entfernen können

Alle 3 Kommentare

Sie müssen den für Ihre Container zulässigen Pool erhöhen. Dazu müssen Sie Ihre var/lib/docker entfernen, wodurch alle Ihre Container und Bilder zerstört werden.

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
Dadurch wird Ihr Speicherplatz auf 300 GB belegt

Löst dies Ihr Problem? Versuchen Sie außerdem, Docker-Prozesse zu stoppen, Docker erneut zu starten und zu sehen, ob Sie die Bilder entfernen können

Devicemapper, dem der Speicherplatz ausgeht, kann in der Tat sehr schwierig sein; Wir verfolgen diesbezügliche Probleme unter https://github.com/docker/docker/issues/20272.

Für Docker 1.11 gibt es eine neue Option, um eine Mindestmenge an freiem Speicherplatz anzugeben, die beibehalten werden soll, und würde verhindern, dass Sie in diese Situation gelangen. siehe https://github.com/docker/docker/pull/20786

Ich werde dieses Thema schließen, da ich denke, dass dies kein Fehler ist, sondern eine Support-Frage, aber Sie können die Diskussion hier gerne fortsetzen

okay. vielen Dank. Hoffe auf die neuen Features von Docker1.11

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen