(三)Docker容器数据卷

什么是容器数据卷

将宿主机的目录和容器的目录进行绑定,对容器运行中产生的数据的进行持久化,类似于redis的rdb和aof文件


容器数据卷能干什么

对容器数据的持久化 容器间数据共享和继承


添加容器数据卷的两种方式

1、使用命令直接添加

使用run命令的-v参数将宿主机的目录和容器的目录进行绑定

1.1 命令

格式:docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名:镜像版本
或者 docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名:镜像版本 ro代表read only 设置之后,在容器内,对于数据卷,只有读的权限
在这里插入图片描述

1.2 查看是否绑定成功

通过命令查看容器的内部细节:docker inspect 容器id
在这里插入图片描述

2、使用DockerFile添加

方式:可在Dockerfile中使用VOLUME指令来给镜像添加一个或多个数据卷

出于可移植和分享的考虑,用-v 主机目录:容器目录这种方法不能够直接在Dockerfile中实现。由于宿主机目录是依赖于特定宿主机的,并不能够保证在所有的宿主机上都存在这样的特定目录。

2.1 创建dockerfile文件

创建文件dockerfile-volume_test,内容如下

FROM centos:7

RUN yum -y install vim

VOLUME ["/tmp/dataVolumeContainer1","/tmp/dataVolumeContainer2"]
CMD echo "finished--------success"
CMD /bin/bash

在这里插入图片描述

2.2 使用dockerfile文件结合build命令创建镜像

docker build -f ./dockerfile-volume_test -t my-centos .
最后有一个点,表示当前文件所处的上下文环境的目录
在这里插入图片描述

2.3 启动容器,使用 docker inspect 容器id 查看容器内部细节

发现,VOLUME 中配置的两个地址,会分别和宿主机上的 /var/lib/docker/volumes/一长串字符串/_data做绑定
在这里插入图片描述


容器数据卷数据共享测试

1、容器停止后,修改宿主机的文件,重启容器,是否会同步?

会同步

2、容器停止后,删除宿主机绑定目录,重启容器,是怎样的效果?

宿主机的绑定目录会重新创建,容器的绑定目录会清空

3、容器里看到的文件和宿主机看到的文件是否是同一份?

是的,可以在宿主机和容器内分别查看文件的唯一id。就可以发现这个共享的是同一份文件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值