Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 如何修复Docker中OCI运行时创建失败_Shell_Docker - Fatal编程技术网

Shell 如何修复Docker中OCI运行时创建失败

Shell 如何修复Docker中OCI运行时创建失败,shell,docker,Shell,Docker,我在新的Rasbian Stretch安装中导入了Docker映像。 图像在上一次安装时运行良好(拉斯宾拉伸)。 问题是:当我尝试使用bash命令在新安装上运行image时(但是使用npm start等的laso),我遇到了以下问题: $ docker run -ti nodejs:latest bash docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starti

我在新的Rasbian Stretch安装中导入了Docker映像。 图像在上一次安装时运行良好(拉斯宾拉伸)。 问题是:当我尝试使用bash命令在新安装上运行image时(但是使用npm start等的laso),我遇到了以下问题:

$ docker run -ti nodejs:latest bash
docker: Error response from daemon: OCI runtime create failed:    container_linux.go:345: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown.
我尝试再次保存原始图像,以便再次导入并运行。但问题总是一样的

上次安装的docker版本为:18.04.0-ce 现在:18.09.0

我尝试安装与以前相同版本的docker,但它没有改变任何东西

我还尝试了以下解决方案: 这表示删除/lib/systemd/system/docker.service中的行“MountFlags=slave” 但是我没有这个文件。所以我做了:

grep -sr "MountFlags=slave" /
输出:

/lib/systemd/system/systemd-udevd.service:MountFlags=slave
因此,我转到/lib/systemd/system/systemd-udevd.service,在注释中添加行“MountFlags=slave”。 然后我做了:
systemctl守护进程重新加载
systemctl重新启动docker

但是没有工作,我仍然有同样的问题

最后,这是可行的: docker run hello world

我的Dockerfile:

    FROM node:8-jessie

RUN apt-get update
RUN apt-get install -y vim fswebcam 

# for mjpg_streamer
RUN apt-get install -y cmake libjpeg8-dev
RUN apt-get install -y gcc g++
EXPOSE 8080

WORKDIR /app
CMD ['npm', 'start']
我不明白为什么我的映像不能在我的新安装上运行,而它可以在我以前的安装上运行


谢谢你

只需在Dockerfile中显式安装
bash

例如,在Dockerfile中更改此行:

运行apt get install-y vim fswebcam bash

或 使用
sh
shell
例如,在run命令中更改此选项:

docker exec-ti nodejs:最新版本


我找到了“解决方案”->我不知道为什么,但我只是用dockerfile重新制作了图像。

我知道这是一个旧线程,但将解决方案放在这里对我有效

使用
docker import
导入docker图像时,我遇到了相同的问题


使用
docker load--input
解决了这个问题。

谢谢你的回答,但我对sh也有同样的问题。即使我根据你的First命令安装了batch。将
docker run
更改为
docker exec
请;)