Passionate Engineer
Passionate Engineer

Reputation: 10412

socket failed Too many open files error Docker

Within Docker container that I'm running with CentOS 6.6, I'm getting below error:

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 version that I'm running on host machine is 1.3.3

I tried to set ulimit within the Docker container but I'm getting below:

[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"

When I try to view the url in the browser I get 500 Internal Server Error.

I'm also running LEMP (Nginx, MySQL and PHP-FPM) stack.

Does anyone have some suggestions on this issue?

Upvotes: 1

Views: 2328

Answers (1)

Javier Cortejoso
Javier Cortejoso

Reputation: 9146

You can increase the open files limit for the docker service adding ulimit -n 65536 to the file /etc/init.d/docker.

Upvotes: 2

Related Questions