我正在尝试运行官方的bwa docker https://hub.docker.com/r/biocontainers/bwa/,但我不断收到错误消息:
sudo docker run -u="root" -v ~/files/:/opt/inputs/ biocontainers/bwa "index /opt/inputs/hg19.fa"
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"index /opt/inputs/hg19.fa\": stat index /opt/inputs/hg19.fa: no such file or directory": unknown.
ERRO[0000] error waiting for container: context canceled
编辑:从第一个字符串中删除双引号会产生不同的错误:
sudo docker run -u="root" -v ~/files/:/opt/inputs/ biocontainers/bwa index /opt/inputs/hg19.fa
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"index\": executable file not found in $PATH": unknown.
我在这里找到了背后的原因:
docker: executable file not found in $PATH
这是正确的原因,但是由于此文件是预构建的,并且我想使用正式版本,因此无法更改Dockerfile中的CMD synthax。如何在不更改容器本身的情况下完成这项工作?
答案 0 :(得分:3)
由于该文件是预构建的,并且我想使用正式版本,所以我无法更改Dockerfile中的CMD合成器
实际上,您确实在运行命令中更改了CMD的设置。图片名称后面的所有内容都会覆盖图片随附的默认CMD值:
sudo docker run -u="root" -v ~/files/:/opt/inputs/ biocontainers/bwa "index /opt/inputs/hg19.fa"
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"index /opt/inputs/hg19.fa\": stat index /opt/inputs/hg19.fa: no such file or directory": unknown.
ERRO[0000] error waiting for container: context canceled
在这种情况下,您已经用bwa
替换了Dockerfile中随附的CMD的"index /opt/inputs/hg19.fa"
值。请注意引号和空格包含在您要运行的可执行文件中。它没有像您期望的那样尝试使用参数index
运行/opt/inputs/hg19.fa
。这就是为什么您看到错误消息的原因:
"exec: \"index /opt/inputs/hg19.fa\": stat index /opt/inputs/hg19.fa: no such file or directory"
要运行命令index
,请删除引号:
sudo docker run -u="root" -v ~/files/:/opt/inputs/ biocontainers/bwa index /opt/inputs/hg19.fa