V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hezhiming1993
V2EX  ›  Docker

docker run 的容器,为什么有一个 ulimit 的配置选项?

  •  
  •   hezhiming1993 · 13 天前 · 609 次点击

    比如查看到这样的"docker-compose" 配置:

    ulimits:
          nofile:
            soft: 262144
            hard: 262144
    

    比如 "docker run" 有参数:

    --ulimit
    --sysctl
    

    那么:

    • 宿主机全局已经进行如此配置, 容器都要进行单独配置? // 假设容器业务有动力配置这些?
    • "docker run"的这些参数,到底与宿主机级别的对应配置是什么关系? // 覆盖关系? 包含关系?
    4 条回复    2024-05-05 21:48:53 +08:00
    zhlxsh
        1
    zhlxsh  
       13 天前 via iPhone
    1. 大胆假设:这个参数是覆盖宿主上默认设置,否则就没用意义了。
    2. 小心求证:以 docker run ulimits 搜索,找到文章 https://www.tutorialspoint.com/setting-ulimit-values-on-docker-containers

    [了解 Docker 中的 ulimit 值] 章节

    默认情况下,Docker 容器继承主机系统的 ulimit 值。但是,您可以使用 docker run 命令中的 ulimit 选项覆盖这些值并为容器设置自定义限制。

    [在 Docker 容器上设置 ulimit 值的最佳实
    ] 章节
    选择适合您的应用程序和主机系统上可用资源的 ulimit 值非常重要。设置太低的值可能会限制容器的性能,而设置太高的值可能会影响主机系统的整体性能。
    zhlxsh
        2
    zhlxsh  
       13 天前 via iPhone   ❤️ 1
    一不小心发出去了,步骤 2 应该是先找理论支持,然后做设计实验观察结果…
    hezhiming1993
        3
    hezhiming1993  
    OP
       13 天前
    @zhlxsh
    Thanks

    Docker 这个参数: 存在默认值-->默认值比较小-->一般人不了解不会额外去设置-->传统业务容器化, 可能带来性能或其他损耗

    我设想的路径: 默认不限制 , 默认情况下不需要额外设置 --> 等到有需求时才设置
    julyclyde
        4
    julyclyde  
       13 天前
    第一,你对“宿主机全局”这个认识就是错的

    你需要理解一下 linux 里 rlimit 这个东西是一层层继承下来的,除非有特权,否则下层不可能宽松过上层
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2340 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 08:56 · PVG 16:56 · LAX 01:56 · JFK 04:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.