我在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
感谢。
答案 0 :(得分:1)
对于版本3的docker-compose文件,该选项仍然适用于docker-compose,但不适用于docker swarm。
以群集模式在群集模式下部署堆栈时,将忽略此选项 (版本3)撰写文件。
这是因为sysctl
读取并修改了系统内核的属性,因此在容器中运行它是没有意义的。 Docker swarm不再支持它是合乎逻辑的,因为如果您全部有2个堆栈/ docker-compose.yml都使用此指令,则会发生冲突。
因此,唯一的方法是在主机上运行命令。