容器数据卷
将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求希望是持久的
容器之间希望有可能共享数据
docker产生的数据,如果不通过docke commit生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除后,数据自然就没有了。为了能保存数据在docker中,所以使用容器数据卷。
容器数据卷类似于redis里面的rdb和aof文件
能干嘛?容器的持久化、容器间继承+共享数据
特点:
- 数据卷可在容器直接按共享或重用数据
- 卷重的更改可以直接生效
- 数据卷中的更改不回包含在镜像的更新中
- 数据卷的生命周期一直持续到没有容器使用它为止。
容器内添加
直接命令添加
docker run -it -v /宿主机绝对路径目录:容器内目录 镜像名字 # v 为volume 在两者之间建立连接
docker inspect 容器ID
#查看数据卷是否挂载成功
容器和宿主机之间数据共享 #分别进入查看
容器停止退出后,主机修改后数据是否同步
命令(带权限)
docker run -it -v/宿主机绝对路径目录:/容器内目录:ro镜像名 # ro only read
如果写权限不够的话,添加–privileged=true
DockerFile添加
根目录下新建mydocker文件夹并进入
可在DockerFile中使用volume指令来给镜像添加一个或多个数据卷
file构建 #编写脚本
build后生成镜像
run容器
主机对应默认地址 #docker inspect 容器ID查看
数据卷容器
命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。
–volumes-from
范例过程如下:
新建一个容器,并且建立
docker run -it -v /root/datavolume:/root/datavolume01 --name cq1 centos
在容器cq1中进入共享目录