docker compose 3 sysctls指令不受支持

时间:2017-06-13 15:07:24

标签: docker docker-compose

我在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

感谢。

1 个答案:

答案 0 :(得分:1)

对于版本3的docker-compose文件,该选项仍然适用于docker-compose,但不适用于docker swarm。

  

以群集模式在群集模式下部署堆栈时,将忽略此选项   (版本3)撰写文件。

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

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