使用docker-compose指定sysctl值

Kes*_*va 13 docker docker-compose

我试图设置一些sysctl值.
基本上如下

sysctl -w \
   net.ipv4.tcp_keepalive_time=300 \
   net.ipv4.tcp_keepalive_intvl=60 \
   net.ipv4.tcp_keepalive_probes=9
Run Code Online (Sandbox Code Playgroud)

在码头工人的容器中.
直接登录到容器并执行命令时,出现以下错误

sysctl: cannot stat /proc/sys/net/ipv4/tcp_keepalive_time: No such file or directory
sysctl: cannot stat /proc/sys/net/ipv4/tcp_keepalive_intvl: No such file or directory
sysctl: cannot stat /proc/sys/net/ipv4/tcp_keepalive_probes: No such file or directory
Run Code Online (Sandbox Code Playgroud)

然后我docker run这里找到了--sysctl选项 但是我没有找到通过docker-compose的等效选项.我有一些默认启动的服务,所以使用docker run而不是docker-compose对我来说不是一个选项.

任何人都知道通过compose为容器提供--sysctl选项的方法吗?

d3m*_*ing 26

此选项现在在docker-compose 1.10.0-rc1中可用,您需要升级到该版本(pip install docker-compose==1.10.0-rc1)并将docker-compose.yml文件更新为每个文档版本2.1

示例docker-compose.yml:

version: '2.1'
services:
    app:
        build: .
        sysctls:
            - net.ipv6.conf.all.disable_ipv6=1
Run Code Online (Sandbox Code Playgroud)