docker:容器数据卷的使用

1.说明

容器数据卷是什么?就像我们平时用来拷贝数据的U盘。
容器数据卷的作用:
1.容器的持久化
2.容器间继承、共享数据
3.容器与宿主机之间的数据共享

2.容器内添加数据卷

先看看我主机的目录情况,准备在根目录的 opt目录下操作:
在这里插入图片描述
本次操作的镜像为centos,执行以下命令:

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

宿主机文件夹为 /opt/doker_share,容器文件夹为 data_sare
在这里插入图片描述
查看一下容器的目录结构:
在这里插入图片描述
容器内部成功创建一个指定名字的、共享的数据目录。
ctrl+p+q 不退出容器返回宿主机查看宿主机的情况:
在这里插入图片描述
没毛病。

3.测试数据是否共享

在主机的共享目录docker_share下创建文件 aaa.txt 并写入内容:

在这里插入图片描述
再次进入容器的交互命令行终端:
在这里插入图片描述
也是可以看到主机上修改的文件的,接着尝试在容器内修改:
在这里插入图片描述
再换个方式试一下,把容器关闭退出,主机修改文件,看看是否能共享:
可以在容器内直接输入 exit 关闭退出,下面是在主机的终端关闭退出:

docker stop 容器id

在这里插入图片描述
然后再来修改一下 aaa.txt: 新增内容: update by host…
在这里插入图片描述
保存退出再重新运行容器查看一下是否同步:
在这里插入图片描述
可见,使用数据卷可以完成容器和主机之间数据的共享、持久化。

4.创建数据卷并且带权限的命令

前面的方式是两边都可以读写的,并没有权限方面的限制。
现在来尝试一下给数据卷带上权限,命令:

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

ro是 read only,只读的意思。

在主机上修改aaa.txt,内容只有 update by host ... ,然后保存退出:
在这里插入图片描述
然后再带数据卷、权限启动容器:

docker run -it -v /opt/docker_share:/data_share:ro centos

在这里插入图片描述
查看aaa.txt:
在这里插入图片描述
尝试修改aaa.txt的内容:

vi aaa.txt

在这里插入图片描述
修改后尝试保存:
在这里插入图片描述
提示: E45: 'readonly' option is set (add ! to override)
只读、不能修改,权限设置成功。

猜你喜欢

转载自blog.csdn.net/weixin_43274097/article/details/104479716