I am trying to set a few sysctl values.
Basically the following
sysctl -w \
net.ipv4.tcp_keepalive_time=300 \
net.ipv4.tcp_keepalive_intvl=60 \
net.ipv4.tcp_keepalive_probes=9
in a docker container.
When log into to the container directly and execute the command, I get the following error
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
Then I found out the --sysctl option in docker run
in here
But I did not find the equivalent option via docker-compose.
I have few services that start by default so using docker run instead of docker-compose is not an option for me.
Anyone knows of a way to supply --sysctl options to the container via compose?
This option is now available in docker-compose 1.10.0-rc1, you'll need to upgrade to that version (pip install docker-compose==1.10.0-rc1
) and also update your docker-compose.yml
file to version 2.1 per docs
Example docker-compose.yml:
version: '2.1'
services:
app:
build: .
sysctls:
- net.ipv6.conf.all.disable_ipv6=1
2
docker-compose lacks many of the CLI options. In general, you have to head over to the github issues for compose and search there. In the case of sysctl
, it's in the process of being added. Someone has made a branch with the addition. You could start with that until it gets added to the master branch.
Explore related questions
See similar questions with these tags.