2016-03-30 14 views
1

Ich habe here gelesen, die docker Container erben ulimit Eigenschaften vom Host. Dies scheint bei meinen Containern nicht zu passieren. Insbesondere benötige ich die Eigenschaft max locked memory, um vom Host zu erben. Weiß jemand, wie man es repariert?Docker-Container erbt nicht Ulimit vom Host

[email protected]:~$ ulimit -a 
core file size   (blocks, -c) 0 
data seg size   (kbytes, -d) unlimited 
scheduling priority    (-e) 0 
file size    (blocks, -f) unlimited 
pending signals     (-i) 31404 
max locked memory  (kbytes, -l) unlimited 
max memory size   (kbytes, -m) unlimited 
open files      (-n) 50000 
pipe size   (512 bytes, -p) 8 
POSIX message queues  (bytes, -q) 819200 
real-time priority    (-r) 0 
stack size    (kbytes, -s) 8192 
cpu time    (seconds, -t) unlimited 
max user processes    (-u) 50000 
virtual memory   (kbytes, -v) unlimited 
file locks      (-x) unlimited 
[email protected]:~$ docker exec -it container /bin/bash 
[email protected]:/# ulimit -a 
core file size   (blocks, -c) 0 
data seg size   (kbytes, -d) unlimited 
scheduling priority    (-e) 0 
file size    (blocks, -f) unlimited 
pending signals     (-i) 31404 
max locked memory  (kbytes, -l) 64 
max memory size   (kbytes, -m) unlimited 
open files      (-n) 524288 
pipe size   (512 bytes, -p) 8 
POSIX message queues  (bytes, -q) 819200 
real-time priority    (-r) 0 
stack size    (kbytes, -s) 8192 
cpu time    (seconds, -t) unlimited 
max user processes    (-u) 524288 
virtual memory   (kbytes, -v) unlimited 
file locks      (-x) unlimited 
+0

Welche Version des Docker-Servers und Clients werden ausgeführt? Was ist das Host-Betriebssystem? –

+0

'Auftraggeber: Version: 1.10.2 API-Version: 1.22 Go Version: go1.5.3 Git commit: c3959b1 Bebaut: Mo 22. Februar 2016 21.37.01 OS/Arch: linux/amd64 Server : Version: 1.10.2 API-Version: 1.22 Go Version: go1.5.3 Git commit: c3959b1 Bebaut: Mo 22. Februar 2016 21.37.01 OS/Arch: linux/amd64 ' – lingxiao

+0

Host-Betriebssystem ist Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-66-generisch x86_64) – lingxiao

Antwort

2

Wenn Sie benutzerdefinierte ulimits für einen Container festlegen möchten, können Sie die --ulimit Option verwenden. Beispielsweise;

docker run -it --rm --ulimit memlock=32768:32768 ubuntu sh -c "ulimit -a" 

Shows:

time(seconds)  unlimited 
file(blocks)   unlimited 
data(kbytes)   unlimited 
stack(kbytes)  8192 
coredump(blocks)  0 
memory(kbytes)  unlimited 
locked memory(kbytes) 32 
process    7873 
nofiles    1024 
vmemory(kbytes)  unlimited 
locks    unlimited 

Sie weitere Informationen in der Dokumentation finden können; https://docs.docker.com/engine/reference/commandline/run/

Weitere Möglichkeiten zum Einschränken von Ressourcen für einen Container finden Sie auch in diesem Abschnitt. https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources

Verwandte Themen