hezhiming1993
V2EX  ›  Docker

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

  •  
  •   hezhiming1993 · May 5, 2024 · 1757 views
    This topic created in 765 days ago, the information mentioned may be changed or developed.

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

    ulimits:
          nofile:
            soft: 262144
            hard: 262144
    

    比如 "docker run" 有参数:

    --ulimit
    --sysctl
    

    那么:

    • 宿主机全局已经进行如此配置, 容器都要进行单独配置? // 假设容器业务有动力配置这些?
    • "docker run"的这些参数,到底与宿主机级别的对应配置是什么关系? // 覆盖关系? 包含关系?
    4 replies    2024-05-05 21:48:53 +08:00
    zhlxsh
        1
    zhlxsh  
       May 5, 2024 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  
       May 5, 2024 via iPhone   ❤️ 1
    一不小心发出去了,步骤 2 应该是先找理论支持,然后做设计实验观察结果…
    hezhiming1993
        3
    hezhiming1993  
    OP
       May 5, 2024
    @zhlxsh
    Thanks

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

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

    你需要理解一下 linux 里 rlimit 这个东西是一层层继承下来的,除非有特权,否则下层不可能宽松过上层
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1264 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 23:43 · PVG 07:43 · LAX 16:43 · JFK 19:43
    ♥ Do have faith in what you're doing.