当-v工作时,Dockerfile VOLUME不起作用

时间:2017-07-08 22:53:01

标签: linux docker

当我像-v / dir:/ dir那样传递音量时,它的工作方式应该是

但是当我在我的dockerfile中使用VOLUME时,它会变为空白

我的Dockerfile看起来像这样

FROM ubuntu:16.04                                         

RUN apt-get update                                        
RUN apt-get install nano                                  
ENV Editor="/usr/bin/nano"                                

ARG UID=1000                                              
RUN useradd -u "$UID" -G root writer                      
RUN mkdir -p "/home/writer" && chown -R "$UID":1000 "/home/writer"

RUN mkdir -p "/home/stepik"                                  
RUN chown -R "$UID":1000 "/home/stepik"                        
VOLUME ["/home/stepik"]

USER writer

WORKDIR /home/stepik                                   
ENTRYPOINT ["bash"]

1 个答案:

答案 0 :(得分:5)

在Dockerfile上定义卷只告诉docker卷需要存在于容器内,而不是从哪里获取卷。它与传递选项-v /dir而不是-v /dir:/dir相同。结果是一个匿名的"你可以在docker volume ls中看到的带有guid的音量。您无法通过Dockerfile中的选项来确定从哪里安装卷,从docker hub中提取的图像无法从主机安装任意目录并将该目录的内容发送到黑色设计在互联网上的帽子机器。

请注意,我不建议在Dockerfile中定义卷。有关详细信息,请参阅my blog post on the topic