docker的数据卷管理方法
2017-08-12 22:47
393 查看
数据卷的概述
数据卷是一个可以供一个或多个容器使用的特殊目录。可以达到以下目的:
1. 绕过“拷贝写”系统,以达到本地磁盘IO的性能,(比如运行一个容器,在容器中对数据卷修改内容,会直接改变宿主机上的数据卷中的内容,所以是本地磁盘IO的性能,而不是先在容器中写一份,最后还要将容器中的修改的内容拷贝出来进行同步。)
2. 绕过“拷贝写”系统,有些文件不需要在docker commit打包进镜像文件。
3. 在多个容器间共享目录
4. 在宿主和容器间共享目录
5. 在宿主和容器间共享一个文件。
数据卷管理
docker run 在创建容器时使用 -v 参数可以挂载一个或多个数据卷到当前运行的容器中,-v 的作用是将宿主机上的目录作为容器的数据卷挂载到容器中,使宿主机和容器之间可以共 享一个目录。挂载数据卷到新创建的容器上:
docker run -it --name paremeter -v /tmp/data1:/data1 -v /tmp/data2:/data2 rhel7 /bin/bash #进入rhel7镜像搭载的parameter容器中的bash -v后面的是挂载的情况(可重复使用)
-v 参数可以重复使用,挂载多个数据卷到容器中,冒号前面的是宿主机的目录(本地目录 不存在 docker 会自动创建),冒号后面的是容器中的挂载目录。
注:docker commit 时卷的数据不会被保存。 默认挂载可以读写数据卷,也可以只读挂载:
docker run -it --name parameter2 -v /tmp/data2:/data2:ro rhel /bin/bash #在后面 +:ro 为只读挂载
挂载宿主机文件:
docker run -it --name patameter3 -v /etc/yum.repos.d/rhel-dvd.repo:/etc/yum.repos.d/rhel-dvd.repo:ro rhel7 /bin/bash #这样就实现了yum仓库的共享搭建
数据卷容器:
docker create --name data -v /tmp/sharedata:/sharedata rhel7 /bin/true #将这个数据卷导入到data中,然后如果需要生成新的容器可以重复使用,如下 docker run -it --name vm1 --volumes-from data rhel7 /bin/bash docker run -it --name vm2 --volumes-from data rhel7 /bin/bash
测试效果如下
docker attach vm1 bash-4.2# cd /sharedata/ bash-4.2# touch vm1file docker attach vm2 bash-4.2# cd /sharedata/ bash-4.2# ls passwd vm1file bash-4.2# touch vm2file
在物理机上查看
ls /tmp/sharedata/ passwd vm1file vm2file
备份数据卷:
docker run --rm --volumes-from data -v /tmp/backup:/backup rhel7 tar cf /sharedata /backup/test.tar
相关文章推荐
- 【Docker容器的数据管理】-【Docker数据卷容器】- 挂在数据卷容器的方法
- Docker 基础 : 数据管理
- docker数据管理
- docker数据管理--数据卷的备份
- 清理吉日嘎拉走火入魔C#.NET通用权限管理系统组件表数据的脚本方法参考
- Docker 数据管理Named volume详解
- Docker数据管理
- docker数据管理2
- docker 容器数据管理
- Docker数据管理(四)
- 7.Docker-管理应用数据
- 远程管理SQL数据的方法
- docker容器之数据管理
- docker容器之数据管理
- Docker 使用方法总结之:管理工具 shipyard 的详细使用指南
- Android 基于Bmob平台数据管理常用方法整理
- docker 数据管理<1>
- docker数据管理2
- Docker中容器数据卷(Data Volume)和数据管理详解
- Docker基础学习之数据管理