Je travaille sur un projet depuis près d'un an, et ce projet a fonctionné dans Docker. Aujourd'hui, j'ai remarqué que les autorisations de l'ensemble du système de fichiers étaient passées à 777 (tous les fichiers "-rwxrwxrwx"). Je ne sais pas pourquoi tout cela s'est produit et je voulais y remédier.
J'ai exécuté deux commandes Bash:
Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown Error: failed to start containers:
Après cela, j'ai voulu voir le résultat et j'ai lancé cette commande ls -l et j'ai vu un tel message Permission denied , la pire chose qui puisse arriver. Je n'ai pas pu exécuter une seule commande et j'ai décidé de sortir du conteneur. Après cela, le cauchemar a commencé. Et maintenant, lorsque j'essaye de redémarrer le conteneur, j'obtiens l'erreur suivante
find ./ -type -d exec chmod 755 {} \;
find ./ -type -f exec chmod 644 {} \;
Je ne veux pas penser au pire, car je ne peux pas me permettre de perdre ce conteneur, j'en ai vraiment besoin. Mon système d'exploitation Ubuntu 18.04.
3 Réponses :
Vérifiez d'abord l'état du service: $systemctl status docker
Essayez un redémarrage: $systemctl restart docker
J'ai eu le même problème et la solution pour moi était de mettre à jour le fichier d'unité /etc/systemd/system/docker.service ( $systemctl edit docker.service ) plus exactement j'ai supprimé MountFlags=slave du fichier d'unité et ensuite $systemctl daemon-reload .
Merci pour le conseil, je l'ai déjà vérifié, et il n'y a pas de MountFlags = slave
oui, le redémarrage complet de l'application docker a résolu mon problème ....
L'ajout de "bash" dans le point d'entrée a fonctionné pour moi:
ENTRYPOINT ["bash","entrypoint.prod.sh"]
Quelle version de docker avez-vous?
Peut-être avez-vous supprimé l'autorisation d'exécution (
x) surbashou tout autre binaire dans/usr/local/binou où qu'il se trouve.@dejdej 19.03.8
@ StefanGolubović mais avez des idées?
Est-il possible d'exécuter une commande dans un conteneur arrêté depuis l'hôte?
Pas vraiment, si vous faites un
$docker ps -avérifiez le nom du conteneur, puis$docker start -ai CONTAINER, vous avez la même erreur?@ K-sS-k comment avez-vous essayé d'
execdans un conteneur?docker execcommandedocker execexécute une nouvelle commande dans un conteneur en cours d'exécution (docker psmontre des conteneurs en cours d'exécution) etdocker startconsiste à démarrer un conteneur arrêté (docker ps -amontre des conteneurs arrêtés). Si votre conteneur est en cours d'exécution, vous pouvez essayerdocker exec -itu 0 container_name /bin/shoudocker exec -itu 0 container_name /bin/bashselon le shell que vous avez dans le conteneur.Je suppose que vos données de conteneur sont en sécurité, sauf si vous avez utilisé l'indicateur
--rmlors de l'docker run. Il vous suffit de réinitialiser les autorisations de vos fichiers à l'intérieur du conteneur pour les rendre exécutables. Je suis d'accord avec @dejdej - essayerdocker ps --allest une bonne prochaine étape. Pouvez-vous voir votre conteneur (arrêté) dans cette liste?@halfer je vois mon conteneur en essayant
docker ps -aMais il
docker start my_containerdonne une erreurJe pense que tout de ce
executable file not found in $PATH": unknownJe serais enclin à essayer d'exécuter une commande
chmodutilisantdocker commit --change 'RUN find ./ -type -d exec chmod 777 {} \;'( voir ici ). Cependant, vous devriez au moins sauvegarder vos conteneurs avant de le faire, et peut-être attendre que d'autres personnes ici vous conseillent à ce sujet également.(Si je comprends bien,
docker commitprend un système de fichiers de conteneur et exécute une nouvelle commande dessus, créant une nouvelle version du système de fichiers. Je pense que cela pourrait suffire à rendre le conteneur démarrable. Cependant, comme je l'ai dit, les sauvegardes sont essentielles ici).Maintenant, j'obtiens ce
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/bin/bash\": permission denied": unknown.erreurdocker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/bin/bash\": permission denied": unknown.