15,Docker数据卷-实现数据持久化及共享
1,什么是Docker容器数据卷?
首先,我们来回顾下Docker的理念:
- 将应用和运行的环境打包形成镜像,然后再由镜像创建容器并运行,这过程随着容器的运行,可能会产生一些数据,但是Docker容器产生的数据,如果不通过docker-commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。
所以,为了能保存容器运行过程中产生的数据,我们使用数据卷来实现持久化。 另外,也可以实现容器间继承+共享数据。
2,Docker容器数据卷的特点
数据卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷
特点:
- 1:数据卷可在容器之间共享或重用数据
- 2:卷中的更改可以直接生效
- 3:数据卷中的更改不会包含在镜像的更新中
3,给容器添加数据卷
1,命令格式:
命令格式:docker run -it -v /宿主机路径目录:/容器内目录 镜像名
比如: docker run -it -v /hostDatavolume:/containerDatavolume centos /bin/bash
2,检查是否挂载成功
1,查看相关的目录是否创建成功
2,docker inspect 容器ID
查看绑定关系是否已经建立
3,数据共享测试
1,容器和宿主机之间数据共享
我们通过在宿主机的环境和容器的环境下,分别操作文件,观察数据是否可以同步
2,容器停止退出后,主机修改后数据是否同步
(1),容器先停止退出
(2),宿主机修改文件
(3),重新启动容器
(4),观察文件是否同步
3,设置只读数据卷
命令格式:docker run -it -v /宿主机路径目录:/容器内目录:ro 镜像名
例如: docker run -it -v /hostDatavolumeRo:/containerDatavolumeRo:ro centos
在容器内执行创建文件:
只可以在宿主机创建文件,然后共享给容器,但是容器内不允许修改文件
4,数据卷容器
1,什么是数据卷容器
我们之前给容器挂载了数据卷,然后其它容器也可以通过挂载这个容器(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器
2,实现数据卷容器的继承传递
docker run -it --name childDoc --volumes-from 77c79cca0420 centos
相关文章