我已经用我们的应用程序创建了映像,在运行映像之后,我可以看到码头容器也被创建了,当我试图进入码头容器时,我得到了下面的错误,请您在这里帮助我。
“”OCI运行时执行失败: exec失败: container_linux.go:349:启动容器进程导致" exec:“bash:可执行文件未在$PATH中找到”:未知“
我尝试执行以下所有命令
docker run -it exec 962f5d99458c
docker run -it 962f5d99458c
docker exec -it 962f5d99458c /bin
docker exec -it 75f6cb44f9e1
docker run --rm -ti 962f5d99458c sh
docker run --rm -ti 962f5d99458c /bin
docker exec --rm -ti 962f5d99458c /bin
docker exec -ti 962f5d99458c /bin
docker exec -ti 962f5d99458c \bin
docker exec -it 75f6cb44f9e1 bash但没有运气..。你能帮帮我吗。
发布于 2021-03-10 11:32:06
错误说明启动命令无效,因为映像中没有(或不在$PATH上)某些可执行文件(本例中为bash)。对于某些映像(例如基于阿尔卑斯Linux或scratch),没有scratch就足够了,但是如果有任何shell,则可以使用sh。
# create a container from image and get straight into shell
docker run -it <image> sh
# or start a container in background, then get into shell
docker run -d <image>
docker exec -it <container> sh如果映像中没有shell,那么启动它的唯一方法就是使用映像应该运行的应用程序的二进制文件。通常情况下,除非您已经重写了Dockerfile中的ENTRYPOINT和/或CMD,或者是run参数,否则它就会开箱即用。默认的启动参数可以用docker inspect找到。
docker image inspect nginx | jq '.[0].Config.Entrypoint'
docker image inspect nginx | jq '.[0].Config.Cmd'如果您完全确定可执行文件存在,但仍然得到错误,使用绝对路径可能会有所帮助(例如,/bin/bash而不是简单的bash)。
https://stackoverflow.com/questions/66563549
复制相似问题