如何使用 --ulimit 选项在 docker 容器中将 POSIX 消息队列限制设置为无限制
How to set POSIX message queues limit to unlimited in docker container using --ulimit option
如何为 docker 容器设置 POSIX 消息队列限制为无限制。
我知道 --ulimit 是一个可以与 docker 运行 一起使用的选项,但我不太确定如何将 --ulimit 选项与 docker 运行 用于 POSIX 个消息队列。
尝试了以下但没有成功:
docker run -it --ulimit msgqueue=unlimited
也尝试在容器内关注
ulimit -q unlimited
错误: 不允许操作
才知道docker中的--ulimit不支持unlimited
的值
方法是
docker run -it --ulimit msgqueue=100000000:100000000
100000000 为 100GB
您可以像这样将 POSIX 消息队列大小设置为无限制:docker run --ulimit msgqueue=-1
。在 Docker 版本 20.10.5
.
上进行了测试
在容器中,您可以通过 运行 ulimit -a
:
确认它确实是无限的
root@3385ae319f68:/# 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) 15217
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 50000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) unlimited # <----------
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
在我的例子中,如果我不设置 --ulimit msgqueue=-1
选项,则值为 819200。
如何为 docker 容器设置 POSIX 消息队列限制为无限制。
我知道 --ulimit 是一个可以与 docker 运行 一起使用的选项,但我不太确定如何将 --ulimit 选项与 docker 运行 用于 POSIX 个消息队列。
尝试了以下但没有成功:
docker run -it --ulimit msgqueue=unlimited
也尝试在容器内关注
ulimit -q unlimited
错误: 不允许操作
才知道docker中的--ulimit不支持unlimited
的值
方法是
docker run -it --ulimit msgqueue=100000000:100000000
100000000 为 100GB
您可以像这样将 POSIX 消息队列大小设置为无限制:docker run --ulimit msgqueue=-1
。在 Docker 版本 20.10.5
.
在容器中,您可以通过 运行 ulimit -a
:
root@3385ae319f68:/# 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) 15217
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 50000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) unlimited # <----------
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
在我的例子中,如果我不设置 --ulimit msgqueue=-1
选项,则值为 819200。