Docker:来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:296:

Posted

技术标签:

【中文标题】Docker:来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:296:【英文标题】:Docker: Error response from daemon: OCI runtime create failed: container_linux.go:296: 【发布时间】:2018-05-28 17:46:28 【问题描述】:

我正在尝试使用 express 运行一个简单的节点应用程序,但出现此错误:

这是我的工作目录:

我运行以下命令将我当前的源代码目录挂载到节点容器内的/var/www 并运行 node npm start 启动应用程序; 但我收到上面的错误,不知道该怎么办:

docker run -p 8085:3000 -v /home/joel/workspace/plural_docker_webdev:/var/www node -w "/var/www" node npm start

我得到这个错误:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:296: starting container process caused "exec: \"-w\": executable file not found in $PATH": unknown.
ERRO[0000] error waiting for container: context canceled

【问题讨论】:

【参考方案1】:

Docker 告诉您该命令遇到错误。 它正在尝试使用命令-w 运行node 映像。 因为-w 不是命令,所以会抛出这个错误。

这是因为你在一个你可能不打算写的地方写了node

您的命令被这样解释:

docker run -p [port_info] -v [volume_info] node [command]

你可以像这样重写你的命令,它应该可以正常工作:

docker run -p 8085:3000 -v /home/joel/workspace/plural_docker_webdev:/var/www -w "/var/www" node npm start

【讨论】:

谢谢瑞恩,但这不是我在问题中的命令吗?你的和我的有什么不同;我在哪里做错了? 你有两次节点写入。在第 78 个字符处一次,在第 97 个字符处再次。删除第一个。 第一个节点是镜像名称,第二个节点是docker要运行的命令node npm start;我的问题是卷安装,节点无法找到 package.json 文件,因为它在一个目录中,所以我只运行了相同的命令,但只需添加 /Express_website/ 以提供 package.json 的完整路径和它现在可以工作了,再次感谢,所以新命令将是: docker run -p 8085:3000 -v /home/joel/workspace/plural_docker_webdev/Express_website/:/var/www -w "/var/www npm start 现在注意卷安装包括 /Express_website 指向 package.json。感谢 Ryan 这可能是一个额外的问题。但是,您打算传递给docker run 的任何参数都需要出现在[container_name] 参数之前。在您发布的命令中,-w "/var/www" 出现在 node 之后。这就是为什么 docker 试图运行命令 -w 并给你一个错误的解释。此外,node npm start 不是命令。它只是npm start。您可以在控制台中验证这一点。 我通过在命令后添加[container_name] 解决了我的问题。谢谢@RyanRapp

以上是关于Docker:来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:296:的主要内容,如果未能解决你的问题,请参考以下文章

来自守护进程的 Docker 错误响应:“冲突……容器已在使用”

如何修复“docker:来自守护进程的错误响应:无法链接到非运行容器:/db AS /odoo/db

Docker:来自守护进程的错误响应:未能在网桥上创建端点 priceless_noether:

Docker 抛出 FATA [0000] 来自守护进程的错误响应

来自守护进程的 Docker 错误响应:无法启动容器

docker:来自守护进程的错误响应:grpc:连接不可用