Wget在Dockerfile中,文件在容器中消失

Wget在Dockerfile中,文件在容器中消失,docker,docker-compose,Docker,Docker Compose,在Docker文件中,我使用wget下载图像中的文件。但是当我在docker compose文件中使用此图像时,容器不包含这些文件 FROM debian:8 RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/* RUN mkdir -p /blast && cd /blast RUN wget ftp://ft

在Docker文件中,我使用wget下载图像中的文件。但是当我在docker compose文件中使用此图像时,容器不包含这些文件

    FROM debian:8

    RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/*

    RUN mkdir -p /blast  && cd /blast
    RUN wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.6.0+-x64-linux.tar.gz
    RUN tar zxvpf ncbi-blast-2.6.0+-x64-linux.tar.gz && rm ncbi-blast-2.6.0+-x64-linux.tar.gz
    RUN export PATH=$PATH:/blast/ncbi-blast-2.6.0+/bin
    #&& export BLASTDB=/blast/blastdb

    CMD ["sleep", "infinity"]
在容器中,我有/blast文件夹,但没有文件。。。有人知道我怎么做wget和保存文件吗?为什么它们会消失

编辑

码头工人历史

    IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
    13361cc1dda8        9 minutes ago       /bin/sh -c #(nop)  CMD ["sleep" "infinity"]     0 B                 
    748afb9b0a0a        9 minutes ago       /bin/sh -c #(nop) WORKDIR /blast                0 B                 
    6eb2b58af7d4        9 minutes ago       /bin/sh -c export PATH=$PATH:/blast/ncbi-b...   0 B                 
    1331a22dcf67        10 minutes ago      /bin/sh -c wget ftp://ftp.ncbi.nlm.nih.gov...   675 MB              
    83d2844843e5        35 minutes ago      /bin/sh -c mkdir -p /blast  && cd /blast        0 B                 
    6b0b6a13ae47        41 minutes ago      /bin/sh -c apt-get update && apt-get insta...   41.2 MB             
    054abe38b1e6        12 hours ago        /bin/sh -c #(nop)  CMD ["/bin/bash"]            0 B                 
    <missing>           12 hours ago        /bin/sh -c #(nop) ADD file:712c48086043553...   123 MB         

将你的跑步分组,在一次跑步中完成wget和tar,比如

运行wgetftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/最新/ncbi-blast-2.6.0+-x64-linux.tar.gz\
&&tar zxvpf ncbi-blast-2.6.0+-x64-linux.tar.gz和rm ncbi-blast-2.6.0+-x64-linux.tar.gz

请参阅编写Dockerfile的最佳实践

在Dockerfile中使用ENV而不是export


Thx,我会按照最佳实践来做,但我的文件总是消失:/during
docker build
你看到tar工作正常吗?你能把你的图片上传到docker历史吗?然后,在tar显示后启动层,类似于
docker run-it layer\u number bash
然后查找您的文件so
docker run-it 1331a22dcf67 bash
并查找您的文件这是错误的
run mkdir-p/blast&&cd/blast
,您的cd被“遗忘”,请改用WORKDIR,我猜你的文件在/因为在一次跑步中你做了
cd xxx
,这只在这次跑步中有效,在下一次跑步中它被忘记了,你可以做
RUN cd;wget。。;tar
或者像我说的那样使用WORKDIR
    2017-04-25 07:41:47 (10.1 MB/s) - 'ncbi-blast-2.6.0+-x64-linux.tar.gz' saved [222504398]

    ncbi-blast-2.6.0+/
    ncbi-blast-2.6.0+/ChangeLog
    ncbi-blast-2.6.0+/LICENSE
    ncbi-blast-2.6.0+/ncbi_package_info
    ncbi-blast-2.6.0+/doc/
    ncbi-blast-2.6.0+/doc/README.txt
    ncbi-blast-2.6.0+/bin/
    ncbi-blast-2.6.0+/bin/makeblastdb
    ncbi-blast-2.6.0+/bin/tblastx
    ncbi-blast-2.6.0+/bin/tblastn
    ncbi-blast-2.6.0+/bin/blastn
    ncbi-blast-2.6.0+/bin/blastdb_aliastool
    ncbi-blast-2.6.0+/bin/update_blastdb.pl
    ncbi-blast-2.6.0+/bin/windowmasker
    ncbi-blast-2.6.0+/bin/psiblast
    ncbi-blast-2.6.0+/bin/blastx
    ncbi-blast-2.6.0+/bin/rpsblast
    ncbi-blast-2.6.0+/bin/segmasker
    ncbi-blast-2.6.0+/bin/blastdbcheck
    ncbi-blast-2.6.0+/bin/rpstblastn
    ncbi-blast-2.6.0+/bin/deltablast
    ncbi-blast-2.6.0+/bin/makembindex
    ncbi-blast-2.6.0+/bin/convert2blastmask
    ncbi-blast-2.6.0+/bin/blastp
    ncbi-blast-2.6.0+/bin/dustmasker
    ncbi-blast-2.6.0+/bin/makeprofiledb
    ncbi-blast-2.6.0+/bin/blastdbcmd
    ncbi-blast-2.6.0+/bin/legacy_blast.pl
    ncbi-blast-2.6.0+/bin/blast_formatter
    ncbi-blast-2.6.0+/README
     ---> 1331a22dcf67
    Removing intermediate container 06070bb79e70