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
) surbash
ou tout autre binaire dans/usr/local/bin
ou 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 -a
vérifiez le nom du conteneur, puis$docker start -ai CONTAINER
, vous avez la même erreur?@ K-sS-k comment avez-vous essayé d'
exec
dans un conteneur?docker exec
commandedocker exec
exécute une nouvelle commande dans un conteneur en cours d'exécution (docker ps
montre des conteneurs en cours d'exécution) etdocker start
consiste à démarrer un conteneur arrêté (docker ps -a
montre des conteneurs arrêtés). Si votre conteneur est en cours d'exécution, vous pouvez essayerdocker exec -itu 0 container_name /bin/sh
oudocker exec -itu 0 container_name /bin/bash
selon 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
--rm
lors 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 --all
est une bonne prochaine étape. Pouvez-vous voir votre conteneur (arrêté) dans cette liste?@halfer je vois mon conteneur en essayant
docker ps -a
Mais il
docker start my_container
donne une erreurJe pense que tout de ce
executable file not found in $PATH": unknown
Je serais enclin à essayer d'exécuter une commande
chmod
utilisantdocker 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 commit
prend 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.