我在docker-compose文件中有一个sysctls设置,但是据我了解,该指令在版本3中被忽略:

sysctls:
        - net.core.somaxconn = 65536
        - net.ipv4.tcp_max_tw_buckets = 1440000
        - net.ipv4.ip_local_port_range = 1024 65000
        - net.ipv4.tcp_fin_timeout = 15
        - net.ipv4.tcp_window_scaling = 1
        - net.ipv4.tcp_max_syn_backlog = 3240000
        - fs.file-max = 20480

我需要找到另一种设置这些参数的方法,但是我无法从文档中准确地找到方法(尝试RUN和CMD),并且需要一个清晰的示例来说明如何执行此操作。
我了解通常在命令行中它是这样的:
sudo sysctl -w net.core.somaxconn=65536

谢谢。

最佳答案

对于版本3的docker-compose文件,该选项仍可与docker-compose一起使用,但不适用于docker swarm。



这是因为sysctl读取并修改了系统内核的属性,因此在容器中运行它是没有意义的。 Docker swarm不再支持它是合乎逻辑的,因为如果您全部有2个堆栈/docker-compose.yml都使用此指令,则会发生冲突。

因此,唯一的方法是在主机上运行命令。

关于 docker 撰写3 sysctls指令不受支持,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44525301/

10-11 15:28