Docker容器数据卷

镜像下载、域名解析、时间同步请点击 阿里云开源镜像站

Docker容器数据卷

容器具有隔离性,默认情况下,容器内应用产生的数据都是由容器本身独有,如果容器被删除,对应的数据文件就会跟着消失。从容器隔离性角度来看,数据和容器时共存亡的;但是在实际应用场景中,更多的是需要数据能够持久化,而且很多场景也需要容器间数据能够共享。

手动存储数据

手动存储数据有两种方式:命令拷贝容器提交为镜像

命令拷贝

容器和主机之间可以通过命令进行数据拷贝,在容器删除之前,可以先将容器中的数据拷贝下来。
file

容器提交为镜像

通过将容器进行提交,制作为新的镜像,将数据保存到新的镜像中。
file
手动备份的不足:效上不能及时备份,效率低下,容易出现错误,更辛苦的是做备份的小盆友。

容器数据卷自动备份

为了能高效率及时的保存数据,在docker中使用了容器卷进行自动备份。数据卷可以理解为文件或目录,设计的目的就是为了数据的持久化和共享;

数据卷完全独立于容器的的生命周期,容器删除时,对应挂载的数据卷不会被删除。

通过将容器内的目录挂载到主机上面,就可让数据实现同步,不管是主机改动,还是容器内改动,都会同步更新。

数据卷特点:

1:数据卷可在容器之间共享或重用数据

2:卷中的更改可以直接生效

3:数据卷中的更改不会包含在镜像的更新中

4:数据卷的生命周期一直持续到没有容器使用它为止

命令方式添加

添加容器卷

docker run -it -v /宿主机绝对路径目录:/容器内目录      镜像名

file

查看数据卷是否挂载成功

docker inspect 容器ID或容器名

file
file

容器和宿主机之间数据共享

file

容器停止退出后,主机修改后数据同步验证

file

带权限的添加容器卷 容器只读

file
file

Dockerfile方式添加

1、创建文件夹,并在文件夹中创建DockerFile文件。

2、在DockerFile中使用VOLUMN指令给镜像添加一个或多个数据卷

3、通过docker build命令生成镜像文件,获得一个新的镜像

4、通过docker run命令生成一个容器。

5、通过 docker inspect命令查看容器卷挂载情况

file
file
file
file
file
file

数据卷容器

命名的容器用来挂载数据卷,其他容器通过挂载这个容器(父容器)来实现数据共享,挂载数据卷的容器,称之为数据卷容器。主要用于容器间数据的传递和共享。

1、创建具有容器卷的父容器
file
2、创建子容器,且继承父容器
file
3、在子/父容器中的数据卷中添加数据,可以看到在父子容器间,数据是共享的
file
4、删除父容器,发现子容器之间的数据还是共享的
file
5、创建子容器的子容器,发现数据也是能够共享的
file

本文转自:https://blog.csdn.net/Rong_zhe/article/details/122225023

posted @ 2021-12-31 10:43  萌褚  阅读(66)  评论(0编辑  收藏  举报