AKTUALISIEREN:
zu diesem Thema gab es viele Fragen und Diskussionen zu stackoverflow. Und obwohl sie als von Tausenden von Benutzern als akzeptiert markiert und gestartet sind, scheinen sie hier nicht die richtige Antwort zu sein.
Ich habe einen Docker-Container (Version 1.13.1, Build 092cba3) mit Ressourceneinschränkungen wie folgt ausgeführt:
docker run --privileged -v /sys/fs/cgroup:/sys/fs/cgroup -m 4096M --cpuset-cpus='0' --cpus=1 --cpu-shares=256 -p $IMAGE_NAME
Das Host-System (RHEL 7) verfügt über 4 Kerne und 8 GB Speicher. Grundsätzlich möchte ich den verfügbaren Speicher und die CPU für den Container einschränken. Nachdem der Container erfolgreich gestartet wurde, öffnete ich die Bash und versuchte, die Grenzwertinformationen aus dem Container herauszufinden. Ich konnte jedoch nicht die richtigen Informationen erhalten.
Ich habe das versucht:
Sudo cat /proc/meminfo
Das Ergebnis ist:
Hostsystem MemTotal: 8008812 kB MemFree: 7416404 kB MemAvailable: 7537332 kB
Docker Container MemTotal: 8008812 kB MemFree: 7318052 kB MemAvailable: 7498764 kB
Ebenso wollte ich ein CPU-Limit bekommen:
grep -c ^processor /proc/cpuinfo
Das Ergebnis ist:
Hostsystem 4
Docker Image 4
Es scheint, dass das von Container erzwungene CPU- und Arbeitsspeicherlimit vom Container nicht sichtbar ist. Ich habe auch versucht, cgroup-Informationen abzufragen.
mkdir -p /tmp/memory
mount -n -t cgroup -o memory cgroup /tmp/memory
Dann schaue ich in die cgroup-Dateien:
[[email protected] memory]# cat /tmp/memory/memory.limit_in_bytes
9223372036854771712
Diese Anzahl ist größer als der tatsächliche Speicher des Host-Systems.
Gibt es eine Möglichkeit, zu überprüfen, ob die Ressourceneinschränkungen korrekt im Container festgelegt wurden? Wie finde ich die Informationen zur Ressourceneinschränkung in einem Container? Schätzen Sie jeden Vorschlag.
AKTUALISIEREN
Dies ist die Antwort, die funktioniert: https://stackoverflow.com/a/41827812/3209177
Ich habe gerade diese Antwort gefunden:
Speicher auf einem Docker-Container beschränken funktioniert nicht
Ich werde es versuchen und komme mit meiner Beobachtung zurück.
ich versuche diesen Befehl dies mein Docker Host es funktioniert Docker Run -it -d -m 100M --cpuset-cpus = '0' --cpus = 1 --cpu-shares = 256 --name testet Ubuntu/bin/bash