您的位置:首页 > 运维架构 > Docker

Docker 05 - 容器数据卷

2019-07-21 12:08 363 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_30815637/article/details/89886918

Docker 05 - 容器数据卷

是什么 ?

有点类似 Redis 里面的 rdb 和 aof 文件.

能干嘛 ?

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

数据卷 ?

直接命令添加数据卷 :

运行容器添加数据卷

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

查看数据卷是否加载成功 :

容器和宿主机之间的数据共享以及是否同步 :

命令(带权限)

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

DockerFile 添加数据卷 :

根目录新建 mydocker 文件夹并进入

mkdir mydocker
cd mydocker

在 DockerFile 中使用 VOLUME 指令来给镜像添加 一个或者多个数据卷 在 mydocker 目录中创建

dockerFile :

# volume test
FROM centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finished,--------success1"
CMD /bin/bash

File 构建

docker build -f /mydocker/dockerFile -t lfy/mycentos .

build 后生成镜像

docker run -it 容器id

进入容器后默认在根目录生成了数据卷的文件夹两个

ls -l

然后不关闭退出容器

#执行该指令查看数据卷文件在宿主机的那个文件夹
docker inspect 容器id

然后进行测试是否成功 同命令方式

数据卷容器 ?

什么是数据卷容器 ?

命名的容器挂载数据卷, 其他容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器.

案例 :

以上一步新建的 centos 为模板运行三个容器,实现容器间的传递共享 :

  1. 新建一个父容器 cs01

  1. 使 cs02 和 cs03 继承自容器 cs01

  1. cs02 和 cs03 各自在自己的第二个数据卷中添加内容

  1. 观察 cs03 中的第二个数据卷中有 cs02 新建的文件

  1. 删除 cs01 之后, 观察 cs02 和 cs03 是否可以访问 同样有数据

结论 :

容器之间的配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: