我正在尝试设置几个sysctl值。
基本上是这样的:
sysctl -w \
net.ipv4.tcp_keepalive_time=300 \
net.ipv4.tcp_keepalive_intvl=60 \
net.ipv4.tcp_keepalive_probes=9
在一个码头集装箱里。
当直接登录到容器并执行命令时,我得到以下错误
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
然后我在here的docker run
中找到了--sysctl选项,但是我没有通过docker-compose找到对应的选项。我有几个默认启动的服务,所以我不能选择使用docker run而不是docker-compose。
有人知道通过compose向容器提供--sysctl选项的方法吗?
发布于 2017-01-06 08:01:57
该选项现在在docker-compose 1.10.0-rc1中可用,您需要升级到该版本(pip install docker-compose==1.10.0-rc1
),并且还需要将您的docker-compose.yml
文件更新到每个docs的2.1版
docker-compose.yml示例:
version: '2.1'
services:
app:
build: .
sysctls:
- net.ipv6.conf.all.disable_ipv6=1
发布于 2016-09-05 19:50:20
docker-compose缺少许多CLI选项。通常,您必须前往github issues for compose并在那里进行搜索。就sysctl
而言,它正在被添加的过程中。有人抓走了made a branch with the addition。您可以从它开始,直到它被添加到主分支。
https://stackoverflow.com/questions/39329732
复制相似问题