我在 oraclelinux 9 Linux 主机上运行 Linux 容器(主机本身在虚拟机中运行)。
docker从哪里读取sysctl参数?
我尝试更改 docker 使用的 sysctl 值的默认值。
为此,我在主机上执行了以下步骤
sysctl -w net.ip4.udp_rmem_min=64000000
sysctl -a | grep ip4.udp_rmem_min
-> 64000000systemctl restart docker
(只是为了保存)docker run --rm -it oraclelinux:9
在容器中
sysctl -a | grep ip4.udp_rmem_min
-> 4096
为什么是 4096 而不是 64000000?
cat /proc/sys/net/ipv4/udp_rmem_min
在主机上确实返回 64000000
我还将包含参数的文件复制到/etc/sysctl.d/
并重新启动机器,结果相同。
有趣的是,当我在 Ubuntu 22 机器(裸机)上执行相同操作时,它可以工作。
那么docker从哪里读取oraclelinux 9/rhel中的sysctl值呢?
我以为它只是使用主机的一个,还是我还有其他问题?
我知道我可以使用--sysctl
with docker run
,但我不能那样使用它,因为我间接使用 docker ,通过kind
它似乎没有提供任何定义的可能性--sysctl