Docker Ignore les limites.conf (en essayant de résoudre “trop de fichiers ouverts” d'erreur)

Je fais tourner un serveur web qui est la gestion de plusieurs milliers de connexions simultanées web connexions socket. Pour que cela soit possible, sur Debian linux (mon image de base est google/debian:wheezy, en cours d'exécution sur GCE), où la valeur par défaut du nombre de fichiers ouverts est fixé à 1000, j'ai l'habitude de simplement définir l'espace pour le nombre désiré (de 64 000).

Cela fonctionne très bien, sauf que quand je dockerized ma demande et déployé - j'ai découvert que le panneau type de ignore la limite des définitions. J'ai essayé ce qui suit (sur la machine hôte, et non sur le contenant lui-même):

MAX=64000
sudo bash -c "echo \"* soft nofile $MAX\" >> /etc/security/limits.conf"
sudo bash -c "echo \"* hard nofile $MAX\" >> /etc/security/limits.conf"
sudo bash -c "echo \"ulimit -c $MAX\" >>  /etc/profile"
ulimit -c $MAX

Après avoir fait quelques recherches, j'ai trouvé que les gens étaient en mesure de résoudre un problème similaire en faisant ceci:

sudo bash -c "echo \"limit nofile 262144 262144\" >> /etc/init/docker.conf"

et redémarrage /redémarrage du panneau de service.

Cependant, tous les ci-dessus échouent: je suis le "trop de fichiers ouverts" erreur lors de mon application s'exécute à l'intérieur du conteneur (faire ce qui suit sans docker permet de résoudre le problème).

J'ai essayé d'exécuter ulimit -a à l'intérieur du conteneur pour obtenir une indication si l'espace le programme d'installation a fonctionné, mais cela déclenche une erreur sur ulimit ne pas être un fichier exécutable qui est une partie du CHEMIN.

Quelqu'un a couru dans tout cela, et/ou peut vous suggérer un moyen pour obtenir le panneau de recognzie les limites?

OriginalL'auteur orcaman | 2014-10-16