【问题标题】:How to make `docker run` inherit ulimits如何使`docker run`继承ulimits
【发布时间】:2014-09-09 12:09:46
【问题描述】:

通过 docker 运行命令似乎不符合我当前配置的ulimits:

$ ulimit -t 5 ~ $ sudo -- bash -c "ulimit -t" 5 ~ $ sudo -- docker run --rm debian:wheezy bash -c "ulimit -t" 无限

我怎样才能做到这一点?

【问题讨论】:

    标签: linux docker ulimit


    【解决方案1】:

    您可以在 Docker 守护进程配置中设置全局限制。在 Ubuntu 上,这是在 Upstart 中管理的。将limit cpu <softlimit> <hardlimit> 添加到/etc/init/docker.conf 并重新启动守护程序。

    在每个容器的基础上,您必须使用 --privileged 标志和 docker run 才能设置 ulimit。 AFAIK 没有--privileged,就没有办法做到这一点。

    另见Runtime constraints on CPU and memory

    【讨论】:

    • 只是检查:这适用于所有容器吗?就我而言,我想对每个实例进行限制。
    • 更新了我的答案以包括--privileged
    【解决方案2】:

    目前 (v1.5.0) 这些限制继承自 docker 守护进程的限制。但是docker团队即将发布limits per containers

    对于解决方法,您可以设置容器内的限制,例如

    # docker run ubuntu bash -c "ulimit -t 5; doSomething"
    

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 2017-11-14
      • 1970-01-01
      • 2016-09-09
      • 1970-01-01
      • 2018-01-07
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多