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: