小编kwe*_*wek的帖子

docker 容器中的 tcp_keepalive_time

我有一个将net.ipv4.tcp_keepalive_time内核参数设置为 600的 docker 主机。但是当容器运行时,它使用不同的值:

$ sysctl net.ipv4.tcp_keepalive_time
net.ipv4.tcp_keepalive_time = 600

$ docker run --rm ubuntu:latest sysctl net.ipv4.tcp_keepalive_time
net.ipv4.tcp_keepalive_time = 7200
Run Code Online (Sandbox Code Playgroud)

这是为什么,我该如何更改此值而不必传递--sysctl选项?

--sysctl在我的情况下,我无法通过的原因是该主机是一个 docker swarm 容器,目前swarm不支持此选项。

但是容器不应该只从主机获取这些内核参数吗?我已经重新启动了 docker 服务(及其容器)。

编辑:一些额外的主机信息:

$ uname -r
4.15.0-38-generic
$ docker --version
Docker version 18.06.1-ce, build e68fc7a
Run Code Online (Sandbox Code Playgroud)

docker docker-swarm

9
推荐指数
1
解决办法
7249
查看次数

标签 统计

docker ×1

docker-swarm ×1