将本地文件上载到docker容器

时间:2014-10-22 04:06:22

标签: docker

我的Dockerfile中有以下代码:

ENV GOVERS 073fc578434b

RUN cd /usr/local && curl -O http://go.googlecode.com/archive/$GOVERS.zip
RUN cd /usr/local && unzip -q $GOVERS.zip

上面的代码将zip文件下载到/usr/local目录,一切正常。但是现在我不想下载zip文件,我想从我的本地PC获取zip文件到docker容器的/usr/local

2 个答案:

答案 0 :(得分:3)

假设zip文件名为test.zip并且与Dockerfile位于同一目录中,那么您可以使用dockerfile中的COPY指令。然后你会有:

COPY test.zip /usr/local/
RUN cd /usr/local && unzip -q test.zip

此外,您可以使用ADD指令而不是COPY来解压缩zip文件,并且您不需要运行解压缩命令:

ADD test.zip /usr/local/

答案 1 :(得分:1)

我开始喜欢的另一种方法是使用卷和运行时命令。如果我改变偶然的事情,我不想重建图像。

所以我在docker文件中创建了一个卷来回传输东西: 在Docker文件中:

RUN mkdir -p /someplace/dropbox
....
CMD ..... ; $POST_START ; tail -f /var/log/messages

在主持人身上:

mkdir /dropbox && cp ~/Downloads/fap.zip /dropbox \
 docker run -v /dropbox:/someplace/dropbox  \
   -e POST_START="cp /someplace/dropbox/fap.zip /someplace-else; cd /someplace-else;unzip fap.zip" ..... <image>