将文件从主机操作系统复制到Docker映像

mah*_*ood 3 docker

我有一个包含这样的行的泊坞窗文件

FROM ubuntu:14.04
RUN curl -Lso serf.zip https://URL/serf.zip \ 
&& unzip serf.zip -d /bin \
&& rm serf.zip
Run Code Online (Sandbox Code Playgroud)

这意味着它将下载文件并将其解压缩到linux映像中(此处为Ubuntu-14.04)。

现在,我不想使用该URL。取而代之的是,我在本地(主机)计算机(Ubuntu-12.04)上有文件。问题是,如何将文件从主机操作系统传输到Docker映像?然后,我可以将Dockerfile更改为

FROM ubuntu:14.04
RUN unzip serf.zip -d /bin \
&& rm serf.zip
Run Code Online (Sandbox Code Playgroud)

PS:目前,我有以下图像

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
<none>              <none>              99ca37acd529        39 hours ago        261.2 MB
data-analytics      dataset             1db2326dc82b        2 days ago          1.742 GB
ubuntu              14.04               780bd4494e2f        4 weeks ago         187.9 MB
Run Code Online (Sandbox Code Playgroud)

koj*_*iro 5

FROM whatever
COPY contextfile containerfile
RUN do_thing_to containerfile
Run Code Online (Sandbox Code Playgroud)

在你的情况下

FROM ubuntu:14.04
COPY serf.zip serf.zip
RUN unzip serf.zip -d /bin \
&& rm serf.zip
Run Code Online (Sandbox Code Playgroud)
  1. 该文件必须在构建上下文中。按照惯例,这意味着它位于包含Dockerfile的目录或目录下的子目录中。
  2. 您将不得不创建一个仅包含新复制文件的图层,或者使用ADDmagic自动解压缩该文件。两种方法都有其缺点。