【问题标题】:Chaning tcp_keepalive_* inside a docker container在 docker 容器中更改 tcp_keepalive_time*
【发布时间】:2017-04-19 10:10:23
【问题描述】:

我有一个在 docker 容器中运行的应用程序,我想设置:tcp_keepalive_intvltcp_keepalive_time

我可以在主机系统上更改它并期望 docker(以及里面的所有东西)遵守这些设置吗?

因为/proc/sys/net/ipv4/tcp_keepalive_*不存在于容器内。

【问题讨论】:

    标签: docker proc


    【解决方案1】:

    尝试查看 Docker 运行文档以在 docker run 命令中使用 --sysctl net.ipv4.xxx 覆盖。请注意--sysctl 不适用于docker service 命令...

    详情请参考https://docs.docker.com/engine/reference/commandline/run/#configure-namespaced-kernel-parameters-sysctls-at-runtime

    【讨论】:

      【解决方案2】:

      希望在 Rancher 运行的 docker 实例中实现相同的人,然后他们可以使用 docker-compose 配置。您需要在 docker-compose 文件中添加以下行:

      sysctls:
            net.ipv4.tcp_keepalive_intvl: '45'
            net.ipv4.tcp_keepalive_probes: '15'
            net.ipv4.tcp_keepalive_time: '120'
      privileged: true
      

      使用包含上述配置的 docker-compose 文件创建堆栈后,您可以从 Rancher 登录到 docker shell 并从 /proc 文件系统检查相应的配置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-23
        • 2021-12-17
        • 1970-01-01
        相关资源
        最近更新 更多