套接字失败 打开的文件太多错误 Docker


socket failed Too many open files error Docker

在我使用 CentOS 6.6 运行的 Docker 容器中,我得到以下错误:

2014/12/25 15:09:07 [alert] 319#0: *2030 socket() failed (24: Too many open files) while connecting to upstream, client: 127.0.0.1, server: test.org.au, request: "GET / HTTP/1.0", upstream: "http://127.0.0.1:80/", host: "127.0.0.1"
2014/12/25 15:09:07 [crit] 319#0: *2030 open() "/usr/share/nginx/html/50x.html" failed (24: Too many open files), client: 127.0.0.1, server: test.org.au, request: "GET / HTTP/1.0", upstream: "http://127.0.0.1:80/", host: "127.0.0.1"

我在主机上运行的 Docker 版本是 1.3.3

我试图在 Docker 容器中设置 ulimit,但我得到以下信息:

[root@test ~]# sysctl -p
error: "Read-only file system" setting key "net.ipv4.ip_forward"
error: "Read-only file system" setting key "net.ipv4.conf.default.rp_filter"
error: "Read-only file system" setting key "net.ipv4.conf.default.accept_source_route"
error: "Read-only file system" setting key "kernel.sysrq"
error: "Read-only file system" setting key "kernel.core_uses_pid"
error: "net.ipv4.tcp_syncookies" is an unknown key
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
error: "Read-only file system" setting key "kernel.msgmnb"
error: "Read-only file system" setting key "kernel.msgmax"
error: "Read-only file system" setting key "kernel.shmmax"
error: "Read-only file system" setting key "kernel.shmall"
error: "Read-only file system" setting key "fs.file-max"

当我尝试在浏览器中查看 url 时,出现 500 内部服务器错误。

我也在运行LEMP(Nginx,MySQL和PHP-FPM)堆栈。

有人对这个问题有一些建议吗?

您可以增加 docker 服务的打开文件限制,将ulimit -n 65536添加到文件/etc/init.d/docker