小编典典

刷新docker容器的net.core.somaxcomm(或任何sysctl属性)

linux

我正在尝试将net.core.somaxconndocker容器更改为能够对我的Web应用程序具有更大的请求队列。

在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(希望Docker在容器启动时读取该文件)
  • 重新启动容器sudo docker stopsudo docker run再次
  • 重新启动整个docker服务 sudo service docker restart

但是在容器内部,cat /proc/sys/net/core/somaxconn始终显示128

我正在运行docker 1.2(因此默认情况下无法修改/proc容器内的属性)和Elastic
Beanstalk(因此如果没有--privileged模式,这将允许我进行修改/proc)。

如何将sysctl更改传播到docker?


阅读 1376

收藏
2020-06-03

共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"
  }]
}
2020-06-03