【问题标题】:Docker unable to locate file, even with correct path givenDocker 无法找到文件,即使给出了正确的路径
【发布时间】:2020-08-20 20:10:35
【问题描述】:

我正在运行一个很长的 docker 命令

docker exec -t -i 9f5865473027 cloudgene run imputationserver@1.4.1 --files /illumina/runs/con/chrX_impute/ALL.chrX.PAR2.phase3_v5.shapeit2_mvncall_integrated.noSingleton.genotypes.vcf.gz --refpanel apps@1000g-phase-3-v5@2.0.0 --conf /etc/hadoop/conf --population AFR --mode qconly --output /illumina/runs/con/chrX_impute

但这会报错

Error: Input Files (<a href="http://www.1000genomes.org/wiki/Analysis/Variant%20Call%20Format/vcf-variant-call-format-version-41" target="_blank">VCF</a>): file '/illumina/runs/con/chrX_impute/ALL.chrX.PAR2.phase3_v5.shapeit2_mvncall_integrated.noSingleton.genotypes.vcf.gz' not found.

为什么 docker 没有找到带有绝对路径(即使是相对路径)的文件?如何让 docker 找到这个文件?

即使我这样做了

docker exec -it 9f5865473027 ls /illumina/runs/con/chrX_impute/ALL.chrX.PAR2.phase3_v5.shapeit2_mvncall_integrated.noSingleton.genotypes.vcf.gz

我仍然收到ls: cannot access /illumina/runs/con/chrX_impute/ALL.chrX.PAR2.phase3_v5.shapeit2_mvncall_integrated.noSingleton.genotypes.vcf.gz: No such file or directory

当我执行docker exec -it 9f5865473027 ls . 时,它似乎在/ 或绝对顶级目录中,但使用此信息并输入不带/ 的文件名@因此docker exec -it 9f5865473027 ls illumina/runs/con/chrX_impute/ALL.chrX.PAR2.phase3_v5.shapeit2_mvncall_integrated.noSingleton.genotypes.vcf.gz

Docker 还是找不到文件 :(

我可以通过 docker 的 ls 看到更高的目录,但我所在的目录是 docker exec -it 9f5865473027 ls illumina/runs/con/chrX_impute 神秘地显示为空(它不是)

【问题讨论】:

  • 我认为这个错误与您的应用程序而不是 Docker 更相关。由于容器正在运行,您可以通过运行docker exec -it &lt;container-id&gt; ls /path/to/file 轻松确认该文件是否存在于容器中
  • @oli docker exec -it 9f5865473027 ls illumina/runs/con/chrX_impute/ALL.chrX.PAR2.phase3_v5.shapeit2_mvncall_integrated.noSingleton.genotypes.vcf.gz 仍然给出同样的错误:/
  • 好的,这意味着文件不存在于容器中。
  • @oli 如何确保文件存在于容器中?
  • 您是在复制容器内的文件吗?或者您在主机和容器之间是否有任何卷共享?如果不是,那么您必须先将文件放入容器中(通过 dockerfile 指令或使用 docker cp_

标签: docker centos vcf-variant-call-format


【解决方案1】:

解决这个问题的方法是将文件复制到容器中。每个“容器”似乎都像是一台单独的计算机。

我要做的就是

docker cp ALL.chrX.PAR2.phase3_v5.shapeit2_mvncall_integrated.noSingleton.genotypes.vcf.gz 9f5865473027:/illumina/runs/con/chrX_impute/

然后文件显示为

docker exec -it 9f5865473027 ls illumina/runs/con/chrX_impute
ALL.chrX.PAR2.phase3_v5.shapeit2_mvncall_integrated.noSingleton.genotypes.vcf.gz

【讨论】:

  • 太好了,你自己解决了。不过有一个提示,为了避免每次都这样做,请创建一个包含所需说明的 Dockefile,以使用预定义的配置和要求启动您的容器。
猜你喜欢
  • 2017-05-26
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 2013-07-16
  • 1970-01-01
  • 2023-03-15
  • 2021-09-08
相关资源
最近更新 更多