Le serveur fonctionne bien - ou au moins il semble - mais il y a toujours l'erreur suivante:
Apache2/usr/sbin/Apache2ctl: 87: ulimit: error setting limit (Operation not permitted)
Cela se produit avec Apache 2.2.22-9 sur Debian Wheezy.
# Apache2ctl configtest
/ usr/sbin/apache2ctl: 87: ulimit: limite de réglage des erreurs (opération non autorisée)
Syntaxe OK
# service Apache2 reload
[....] Rechargement de Web Server Config: Apache2/USR/SBIN/APACHE2CTL: 87: Ulimit: limite de réglage des erreurs (opération non autorisée)
. d'accord
# service Apache2 restart
[....] Redémarrage du serveur Web: Apache2/USR/SBIN/APACHE2CTL: 87: Ulimit: limite de réglage des erreurs (opération non autorisée)
[.____] ... WAVE/USR/SBIN/APACHE2CTL: 87: Ulimit: Limite de réglage des erreurs (opération non autorisée)
. d'accord
# service Apache2 status
Apache2 est en cours d'exécution (PID 32045).
Le problème provient de/usr/sbin/apache2ctl (sur Debian). Vérifiez-le:
~$ grep ULIMIT /usr/sbin/Apache2ctl
ULIMIT_MAX_FILES="${Apache_ULIMIT_MAX_FILES:-ulimit -n 8192}"
if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then
$ULIMIT_MAX_FILES
Ici, il définit le nombre de fichiers ouverts autorisés à 8192. Ou essayer et échouer, dans votre cas.
Donc, pour éviter d'obtenir une erreur lorsque Apache2CTL le fait, ajustez les paramètres de votre système dans le fichier /etc/security/limits.conf en ajoutant ces deux lignes:
* soft nofile 8192
* hard nofile 8192
Je ne l'ai pas augmenté à plus que nécessaire (8192) parce que je ne sais pas ce que cela aura sur l'autre. Cependant, cela se débarrasse de l'avertissement.
Je ne sais pas si vous aurez besoin de redémarrer votre système après cela, car il y a un élément dynamique aux ulimits que je ne connais pas. Cependant, vous pouvez tester suffisamment facilement pour déterminer quel est votre nombre actuel de fichiers Ulimit:
ulimit -n
Vous voudrez peut-être lire où je l'ai trouvé: Stackoverflow - Réglage ulimit
1.Check et modifier la valeur de ulimit dans votre machine hôte. Ajoutez les valeurs dans le fichier /etc/profil puis faites-la prendre effet.
ulimit -u 10240
ulimit -n 8192 #This configuration is what we most needed
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited
source /etc/profile
ou tu peux:
Sudo sh -c 'printf "\nulimit -HSn 999999\n" >> /etc/sysconfig/docker'
2.Restartez le service Docker et rendez la configuration à être efficace.
Sudo service docker restart
3.test l'ulimit dans le conteneur.
ulimit -n
Ceci est mon résultat de test!
Conseils: Peut-être que vous pouvez également essayer la commande ci-dessous (prérequis: ulimit dans la machine hôte doit être supérieure à 8192), mais i a échoué .
docker run --privileged -it -p xxxx:80 --ulimit data=8192 linode/lamp /bin/bash