Fin de mon Dockerfile:
ENTRYPOINT ["ls /etc"]
Terminal:
...Rest of the building above is fine
Step 8/8 : ENTRYPOINT ["ls /etc"]
---> Using cache
---> ea1f33b8ab22
Successfully built ea1f33b8ab22
Successfully tagged redis:latest
k@Karls ~/dev/docker_redis (master) $ docker run -d -p 6379:6379 --name red redis
71d75058b94f088ef872b08a115bc12cece288b53fe26d67960fe139953ed5c4
docker: Error response from daemon: OCI runtime create failed: container_linux.go:296: starting container process caused "exec: \"ls /etc\": stat ls /etc: no such file or directory": unknown.
Pour une raison quelconque, il ne trouvera pas le répertoire /etc
. J'ai fait un pwd
et le répertoire de travail actuel est /
. J'ai aussi fait un ls /
sur le point d'entrée et qui affichait le /etc
répertoire très bien.
Échec de la création du runtime OCI: container_linux.go: 296
D'après mon expérience, il s'agit d'une erreur avec le démon docker lui-même, pas avec le conteneur que vous essayez d'exécuter. Essayez de supprimer tous les conteneurs, en redémarrant le démon. Je pense que nous avons également dû nettoyer les réseaux de dockers.
Il me semble que j'ai le même problème. Voici ce que je fais.
Dockerfile
FROM gcc:7.2.0
COPY src/ /usr/src/myapp
WORKDIR /usr/src/myapp
RUN set -x gcc -o myapp main.c
CMD ["./myapp"]
Construire
$ docker build -t test .
Sending build context to Docker daemon 3.584kB
Step 1/6 : FROM gcc:7.2.0
...
---> 3ec35c7d2396
Successfully built 3ec35c7d2396
Successfully tagged test:latest
SECURITY WARNING: You are building a Docker image from Windows against a
non-Windows Docker Host. All files and directories added to build context
will have '-rwxr-xr-x' permissions. It is recommended to double check and
reset permissions for sensitive files and directories.
Courir
$ docker run -it test
D:\Docker Toolbox\docker.exe: Error response from daemon: OCI runtime create
failed: container_linux.go:296: starting container process caused "exec:
\"./myapp\": stat ./myapp: no such file or directory": unknown.
Changé CMD en ENTRYPOINT et supprimé l'ensemble -x semblait résoudre le problème. Bien que nous ne sachions toujours pas quelle était la cause ou si cela fonctionnera également pour vous. Assurez-vous que/etc existe ou est créé car le fichier main.c n'était pas en cours de compilation.
Dockerfile
FROM gcc:7.2.0
COPY src/ /usr/src/myapp
WORKDIR /usr/src/myapp
RUN gcc -o myapp main.c
ENTRYPOINT ["./myapp"]
Sur OSX, je l'ai corrigé en effaçant manuellement les données de volume. Fermez Docker et supprimez tout dans ~/Library/Containers/com.docker.docker
J'ai rencontré le même problème après la mise à jour de mes informations d'identification Windows, essayez ce qui suit: Paramètres Docker> Lecteurs partagés> Réinitialiser les informations d'identification> Sélectionner à nouveau les lecteurs> Appliquer et ressaisir vos informations d'identification. Cela a résolu le problème plusieurs fois pour moi