目录
Docker容器的数据卷是一种特殊类型的目录,即使容器被删除,存在于宿主机上,可以供一个或多个容器使用。数据卷可以绕过联合文件系统,提供持续存储或共享数据的特性。设计卷的目的是实现数据的持久化,完全独立于容器的生命周期,这意味即使容器被删除,数据卷中的数据也不会被删除。
特点:
1. 持久化 : 数据卷的数据是持久化的,即使容器被删除,数据也不会被删除。
2. 可共享 : 数据卷可以在多个容器之间共享和重用,使容器之间可以方便的共享数据。
3. 更改实时生效? : 对数据卷的修改会立即生效,且在容器内部与本地目录均可对数据卷进行修改。
4.数据卷的更改不会包含在镜像的更新中,这意味着每次容器创建的时候时,不会覆盖数据卷的数据
5.数据卷的生命周期一直持续到没有容器使用它为止:即使某个容器被删除,只要仍有其他容器使用该数据卷,数据卷依然存在。
一个数据卷可以被多个容器同时挂载。一个容器可以挂载多个数据卷。
创建启动容器时,使用 -v 数据卷 设置数据卷
格式:?docker run -it -v /宿主机绝对目录:/容器内目录 镜像名
创建容器可以参考
https://blog.csdn.net/m0_67930426/article/details/135430093?spm=1001.2014.3001.5501
查看容器?
现在创建一个ccc 的容器并配置一个数据卷
切换到root目录,并且查看root目录列表
现在我们克隆一个会话
克隆一个会话后,这里就会帮我们创建一个 data
接下来演示一遍数据同步的关系
在这里创建一个文件
现在宿主机目录下有个 aaa.txt 文件
然后切换到刚刚设置数据卷的会话页面中
?
此时容器里也存在 aaa.txt
容器做一些改变,宿主机也会同步
echo? bbb > bbb.txt
这里创建一个bbb.txt 文件,并将 bbb 写入到 bbb.txt
cat? ?bbb.txt
查看 bbb.txt 文件
?然后我们切换到宿主机的会话页面,并且查看目录列表
?
?
以上介绍了一下宿主机与容器间的数据共享
现在我们来演示一下容器之间的数据共享特性
首先查看有什么容器
?刚才我们在容器 ccc 创建了一些文件,现在我们查看容器是否有这些文件
进入容器 bbb
?
现在我们创建一个新的容器,名为 ddd,并挂载多个数据卷
?