Docker教程小白实操入门(18)--如何挂载和共享数据卷

网友投稿 281 2022-10-22

Docker教程小白实操入门(18)--如何挂载和共享数据卷

一、需求

容器和本地主机之间如何挂载和共享数据卷

二、挂载数据卷

数据卷的内容保存在​​/var/lib/docker/volume/数据卷名/_data/​​中,数据卷的内容会和容器的挂载点始终保持一致。

“数据卷名”可以用户指定,如果不指定,就会随机生成一个“数据卷名”。

三、挂载宿主机目录

# 将宿主机的/host/dir挂载到了容器的/container/dir目录docker run --name vocotainer1 -v /host/dir:/container/dir ubuntu

宿主机的目录和容器的目录必须使用绝对路径。

如果宿主机不存在​​/host/dir​​目录,则会创建一个空文件夹。

在​​/host/dir​​​下的所有文件和文件夹都可以在容器中在​​/container/dir​​下被访问。

如果镜像中本来就存在​​/container/dir​​文件夹,那么该文件夹下所有内容都会被删除,保证与宿主机中文件夹一致。

三、同时创建多个数据卷

# 创建了两个数据卷docker run --name vocotainer2 -v co2vo1:/data -v co21vo2:/dir1 ubuntu

同理一次指定多个宿主机的目录挂载到容器中也是可行的。

四、与其他容器共享数据卷(--volumes-from)

# 创建了一个名为vocotainer3的容器,并与vocontainer1共享数据卷。# 因为vocontainer1的挂载点在/container/dir上,所以如果vocotainer3的挂载点也将会是/container/dirdocker run --name vocotainer3 -- volumes-from vocontainer1 ubuntu

通常如果有一些文件如果需要被多个容器共享,一种常见的做法就是创建一个数据容器(该容器仅仅用来共享数据而不做其他用途),其他容器与之共享数据卷

五、实例

#1.创建一个名为container1的容器,并将本地主机的/dir1目录挂载到容器中的/codir1中。#********** Begin *********#docker pull busyboxdocker run --name container1 -v /dir1:/codir1 busybox #********** End **********##2.创建一个名为container2的容器,与container1共享数据卷。#********** Begin *********#docker run --name container2 --volumes-from container1 busybox#********** End **********#

我们可以看到/var/lib/docker/volumes/下什么也没有,但是在主机下新建了/dir1/文件夹

参考:​​https://educoder.net/shixuns/pebvjtk9/challenges​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Date类十分钟理清时间的设置与操作
下一篇:Docker教程小白实操入门(14)--如何使用CMD和ENTRYPOINT指令指定容器启动时要运行的命令
相关文章

 发表评论

暂时没有评论,来抢沙发吧~