如何解决使用Docker绑定安装器运行容器会导致容器返回Node版本并退出
构建后,我正在尝试将静态资产目录附加到我的docker实例。当我做这样的事情
docker run -it app /bin/bash
容器运行良好。但是,如果我做这样的事情:
docker run -it app -v "${PWD}/assets:/path/to/empty/directory" /bin/bash
这也复制了它:
docker run -it node:12.18-alpine3.12 -v "${PWD}/assets:/path/to/empty/directory" /bin/bash
它吐出我正在使用的节点v12.18.4
的版本,并立即死亡。我要去哪里错了?我在Windows 10上将docker与wsl2结合使用。是由于文件系统不兼容吗?
编辑:天哪,它吐出的是节点版本,而不是高山版本
解决方法
要调试我的问题,我尝试运行一个准高山容器:
docker run -it alpine:3.12 -v "${PWD}/assets:/usr/app" /bin/sh
哪个给出了一条更有用的错误消息:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"-v\": executable file not found in $PATH": unknown.
由此,我意识到docker试图将-v
作为启动命令运行。我决定改变顺序,事情开始起作用。
TL; DR 在执行-v
命令时,docker run
参数及其对应的参数必须放在容器名称之前。即以下作品
docker run -it -v "${PWD}/assets:/usr/app" alpine:3.12 /bin/sh
但这不是:
docker run -it alpine:3.12 -v "${PWD}/assets:/usr/app" /bin/sh
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。