我正在尝试将net.core.somaxconndocker容器更改为能够对我的Web应用程序具有更大的请求队列。
net.core.somaxconn
在OS上,在docker外部,我首先成功修改了属性:
$ cat /proc/sys/net/core/somaxconn 128 $ sudo sysctl -w net.core.somaxconn=1024 net.core.somaxconn = 1024 $ cat /proc/sys/net/core/somaxconn 1024
但是然后我不知道如何将更改传播到docker。我试过了:
/etc/sysctl.conf
sudo docker stop
sudo docker run
sudo service docker restart
但是在容器内部,cat /proc/sys/net/core/somaxconn始终显示128。
cat /proc/sys/net/core/somaxconn
128
我正在运行docker 1.2(因此默认情况下无法修改/proc容器内的属性)和Elastic Beanstalk(因此如果没有--privileged模式,这将允许我进行修改/proc)。
/proc
--privileged
如何将sysctl更改传播到docker?
只是想出了如何解决这个问题,现在运行的特权容器弹性魔豆的支持,你只需要添加"privileged": "true"到您Dockerrun.aws.json如下面的示例(请大家看看container-1):
"privileged": "true"
Dockerrun.aws.json
container-1
{ "AWSEBDockerrunVersion": 2, "containerDefinitions": [{ "name": "container-0", "essential": "false", "image": "ubuntu", "memory": "512" }, { "name": "container-1", "essential": "false", "image": "ubuntu", "memory": "512", "privileged": "true" }] }