Docker容器的数据卷


一、数据卷概念

1、数据卷是宿主机中的一个目录或文件

2、当容器目录和数据卷目录绑定后,对方的修改会立即同步

3、一个数据卷可以被多个容器同时挂载

4、一个容器也可以挂载多个数据卷

简单理解:有点类似我们的Redis里面的rdb和aof文件

Docker容器的数据卷

 

二、数据卷的作用

1、容器数据持久化

2、外部机器和容器间接通信

3、容器之间数据交换

三、配置数据卷

docker run -id --privileged=true -v /宿主机绝对路径目录:/容器内目录 --name=容器名 镜像名

注:文件目录不存在时会自动创建文件目录

Docker容器的数据卷

 

 四、容器卷和主机互通互联

1、在容器内/tmp/myhostdata目录下创建文件1.txt,并向文件写入内容,然后查看宿主机/myhostdata是否创建了同样文件1.txt

Docker容器的数据卷

 2、在宿主机内/myhostdata目录下创建文件2.txt,并向文件写入内容,然后查看容器/tmp/myhostdata目录是否创建了同样文件2.txt

Docker容器的数据卷

 3、查看数据卷是否挂载成功

docker inspect 容器ID

Docker容器的数据卷

 五、容器卷ro和rw读写规则

说明:默认情况下,容器卷是可读可写的,但是在特殊场景下,我们想要容器实例内部被限制,只能读取不能写,也就是容器内只能读取宿主机文件数据,如果宿主机写入内容,可以同步给容器内,容器可以读取到。

# 可读可写 docker run -id --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw --name=容器名 镜像名  # 只能读不能写 docker run -id --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro --name=容器名 镜像名

六、容器卷之间的继承

步骤一:容器1完成和宿主机的映射

Docker容器的数据卷

 

 

步骤二:容器2继承容器1的卷规则

docker run -it --privileged=true --volumes-from 父类  --name=u2 ubuntu

Docker容器的数据卷

 

 

说明:当容器1挂掉之后,宿主机和容器2之间依旧可以正常同步数据卷内容,当容器1重启之后,会自动同步宿主机和容器2的数据卷,只要实现了容器继承卷的规则,不管是在哪个容器或者宿主机上更新数据卷内容,都会同步其他几个数据卷

 

发表评论

相关文章