Docker卷的挂载点名称

时间:2019-06-21 20:26:36

标签: linux docker dockerfile docker-machine mount-point

使用以下命令:

docker container run -dit --name testcontainer –mount source= ubervol, target=/vol alpine:latest

安装点名称ubervol,它指向容器内的目标 /vol,如下所示:

user@machine:~$ docker container exec -it b4fd sh
/ # pwd
/ 
/ # ls vol
vol

enter image description here

ubervol位于主机(托管docker守护程序)的/var/lib/docker/volumes/ubervol路径中的容器之外


使用以下Dockerfile:

# Create the folders and volume mount points
RUN mkdir -p /var/log/jenkins
RUN chown -R jenkins:jenkins /var/log/jenkins

RUN mkdir -p /var/jenkins_home
RUN chown -R jenkins:jenkins /var/jenkins_home

VOLUME ["/var/log/jenkins", "/var/jenkins_home"]

我的理解是,目标位于路径为/var/log/jenkins的容器中  && /var/jenkins_home


源安装点名称是什么?每个目标(/var/log/jenkins && /var/jenkins_home

此安装点名称在主机中的路径是什么?

1 个答案:

答案 0 :(得分:2)

卷数据在主机上的位置是您不应尝试利用的实现细节。在某些环境下,例如适用于Mac的Docker桌面应用程序,数据将隐藏在您无法直接访问的虚拟机中。尽管我很少见过,但还有另外一种volume drivers,可以让您将内容存储在其他地方。

每次您docker run基于声明VOLUME的映像的容器时,如果不使用-v选项装载其他内容,则Docker将创建一个匿名卷,并且将其安装在那里(就像您未指定--mount source=...一样)。如果您从同一映像启动多个容器,我相信每个容器都会获得一个新卷(如果存在,则具有不同的主机路径)。 Dockerfile无法控制卷在主机上的位置;操作员可以挂载其他命名卷或主机目录。

实际上,在Dockerfile中使用VOLUME几乎没有意义。无论同一目录是否为docker run -v,您都可以使用VOLUME。它的主要作用是prevent future RUN commands from modifying that directory