2016-07-23 16 views
3

Jeder Docker-Container wird standardmäßig mit 10 GB Festplattenspeicher konfiguriert. Dies ist die Standardkonfiguration von devicemapper und funktioniert für alle Container. Wie kann ich Inodes oder Datenträgerkontingent auf den einzelnen Container beschränken?Docker-Container-spezifisches Festplattenkontingent

Zum Beispiel:

Behälter # 1 mit Scheibe 10GB und 10000 Inode Wert

Behälter # 2 mit Festplatte 20GB und 100000 Wert Inode

Hinweis: Ich verstehe, dass wir Ändern Sie den Standardwert 10GB mit docker -d--storage-opt, aber dies gilt für jeden Container.

Frage: Wie kann ich Inodes oder Datenträgerkontingent auf den einzelnen Container beschränken?

Antwort

0

Wie in issue #16670 kommentiert (Erlaube Fähigkeit, einen Behälter zur Verfügung, um Speicherplatz zu begrenzen)

Einige des vorhandenen Volume-Plugins haben die Fähigkeit, Out-of-Band feste Größe Volumes zu erstellen, die dann sein auf Containerlauf montiert.
Alternativ können Sie auch ein eigenes Volume-Plugin schreiben, mit dem Sie die Dateigröße in den Volume-Namen einbetten können.

Die älteren issue 3804 fügt hinzu:

Sie Ihre Daten in einem Volumen gespeichert werden sollen.

AFAIK, das einzige Docker-Speicher-Backend, das die Container-Festplatte standardmäßig einschränkt, ist devicemapper. Sie können den Daemon so konfigurieren, dass er diese Größe anpasst, damit er nicht wirklich "feststeckt".

Kontingente werden jetzt in devicemapper, zfs und btrfs unterstützt.
Wahrscheinlich wird nie in Aufs oder Overlay unterstützt.

Grundsätzlich kann --storage-opt size=1G auf der Daemon-Ebene oder zur Laufzeit festgelegt werden.

So gibt es noch kein pro-Container-Kontingent. Es kann für Volumes geben, sofern das Volume-Plugin dies unterstützt.

2

Ab 1.12 wird dies für dm, btrfs und zfs unterstützt. Die Syntax ist:

$ docker create -it --storage-opt size=120G fedora /bin/bash 

Beachten Sie, dass die Größe muss (natürlich) sein über alles, was Sie in Ihrem Daemon entscheidet sich gesetzt haben.

Relevant docs link.