5

Docker容器的数据卷 - SportSky

 1 year ago
source link: https://www.cnblogs.com/sportsky/p/16214660.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一、数据卷概念

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

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

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

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

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

二、数据卷的作用

1、容器数据持久化

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

3、容器之间数据交换

三、配置数据卷

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

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

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

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

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

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

docker inspect 容器ID

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

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

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

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

六、容器卷之间的继承

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

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK