【问题标题】:Docker: Error response from daemon: OCI runtime create failed: container_linux.go:296:Docker:来自守护进程的错误响应:OCI 运行时创建失败: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

【问题讨论】:

    标签: node.js docker docker-compose dockerfile


    【解决方案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
    猜你喜欢
    • 2019-04-30
    • 2020-01-11
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 2021-10-08
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多