2016-03-30 14 views
1

ulimit'i devralmaz here numaralı belgede, docker kapsayıcısının, ana bilgisayardan ulimit özelliklerini devrettiğini okudum. Bu benim kaplarım için görünmüyor. Özellikle, ana bilgisayardan devralmak için max locked memory özelliğine ihtiyacım var. Bunu nasıl düzelteceğini bilen var mı? Bir kap için özel ulimits ayarlamak istiyorsanızDocker konteyneri, ana makineden

[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

Docker sunucusunun ve istemcinizin hangi sürümü çalışıyorsunuz? Ana işletim sistemi nedir? –

+0

'Müşteri: Versiyon: 1.10.2 API sürümü: 1.22 git sürümü: Git taahhüt go1.5.3 : c3959b1 Yapım: Mon 22 Şubat 21:37:01 2016 OS/Arch: linux/amd64 Sunucu : sürüm: 1.10.2 API sürümü: 1.22 git sürümü: go1.5.3 git taahhüt: c3959b1 Yapım: Mon Feb 22 21:37:01 2016 OS/Arch: linux/amd64 ' – lingxiao

+0

bilgisayar OS olduğunu Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-66-jenerik x86_64) – lingxiao

cevap

2

, sen --ulimit seçeneğini kullanabilirsiniz. Örneğin;

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

Gösterim:

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 
Sen belgelerinde fazla bilgi bulabilirsiniz

; https://docs.docker.com/engine/reference/commandline/run/

Kapsayıcı için kaynakları kısıtlamanın diğer yolları için, ayrıca bu bölüme bakın; https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources

İlgili konular