克隆的git不在Docker Volume中?

时间:2017-02-17 07:16:55

标签: docker docker-volume

我使用以下Dockerfile:

FROM centos
VOLUME ["apitests"]
RUN su
RUN yum -y install git
RUN git clone https://github.com/Human-Connection/CUBE-arduino-yun.git /apitests/

然后我建立我的形象

docker build -t apitesting .

并启动一个带shell的容器

docker run -ti apitesting /bin/bash

现在我在容器中找到/ apitests。 但我找不到克隆的git数据。

我做错了什么?

2 个答案:

答案 0 :(得分:6)

在数据存在后定义VOLUME。 Docker自动使用图像中的任何内容填充VOLUME。开头/apitests为空。

FROM centos
RUN yum -y install git
RUN git clone https://github.com/Human-Connection/CUBE-arduino-yun.git /apitests/
VOLUME ["apitests"]

此外,RUN su因为它自己的步骤什么也没做。每个RUN都会在其自己的容器中启动。在RUN步之间延续的唯一事情是写入磁盘并随后提交到图像层的内容。

答案 1 :(得分:2)

这对我有用:在目录中创建+加载数据后定义卷。

FROM centos
RUN yum -y install git
RUN mkdir /apitests
RUN git clone https://github.com/Human-Connection/CUBE-arduino-yun.git /apitests/
VOLUME /apitests