赞
踩
说明,在本文中,所有的images采用的是busybox:latest。系统采用的是Ubuntu22.04.
数据的共享包括容器和主机共享数据以及容器与容器之间共享数据两个方面。
在上一篇文章中介绍的Bind mount和docker managed volume都可以实现容器和主机之间的数据共享,bind mount 比较直观,直接就可以看出主机上面的文件映射到容器里面的文件;docker managed volume看起来不直观,但是确实也做到了数据共享,可以公国查看容器的信息来看到主机上面共享的文件。
利用bind mount的方法是把主机上面的同一个目录或者文件直接mount到不同的容器上面,间接的实现了容器之间的数据共享。下面通过三幅图片进行演示。
下面时整个过程的视频录像:
Docker数据共享
数据容器是专门为其他容器提供数据卷的容器,提供的卷既可以是bindmount,也可以是docker managed volume。
下面请看实战演示:
a.我们首先创建一个数据卷容器
上面就是创建数据卷容器的过程,大家注意,这个容器只是创建不是运行,因为提供数据卷的容器不需要运行。上面的容器一共挂载了两个数据卷,前面一个采用的是bind mount,后面采用的是docker managed volume。
通过docker inspect volume_box可以查看这两个数据卷。
helmer@Hanssen:~$ docker inspect volume_box [ "Mounts": [ { "Type": "bind", "Source": "/home/helmer/test", "Destination": "/test", "Mode": "", "RW": true, "Propagation": "rprivate" }, { "Type": "volume", "Name": "36aa38fb74b700b6e8ab252eb9e379204a5c223fa2f91271f5c031854237b397", "Source": "/var/lib/docker/volumes/36aa38fb74b700b6e8ab252eb9e379204a5c223fa2f91271f5c031854237b397/_data", "Destination": "/other/useful/tools", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ] helmer@Hanssen:~$
上面这个脚本文件能够看到两个数据卷的详细信息。
b.其他的容器可以直接引用这个数据卷容器
引用的命令为标志–volumes-from volume_box,下面进行演示:
关于验证的话跟上面的验证一样,结论是只要修改主机文件或者容器中的文件,其他的地方都能看见修改。
数据的共享就说这么多。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。