docker数据管理的方法是什么
本文小编为大家详细介绍“docker数据管理的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker数据管理的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
数据的管理目前提供如下两种方式:
(1)数据卷 data volumes
(2)数据卷容器 data volumes containers
数据卷数据卷,说白了就是一个特殊目录,类似linux下对目录或文件进行mount挂载操作,只不过他绕过了文件系统。具有如下特点:
(1)数据卷可以在容器之间进行共享和重用
(2)对数据卷的更改会立即生效
(3)对数据卷的更新不会影响到镜像 (镜像只读)
(4)卷会一直存在,直到没有容器使用
数据卷的添加可以通过-v 参数来设定,后边跟上目录。一下举例说明:
创建一个数据卷/homedata到容器os123中
[root@docker5home]#dockerrun-d-ti--nameos123-v/homedatacentos[root@docker5home]#dockerexex-tios123/bin/bash[root@d1a05a7d5efe/]#lltotal40-rw-r--r--.1rootroot18301Jun213:27anaconda-post.loglrwxrwxrwx.1rootroot7Jun213:25bin>usr/bindrwxr-xr-x.5rootroot380Jun2302:42devdrwxr-xr-x.48rootroot4096Jun2302:42etcdrwxr-xr-x.2rootroot6Aug122015homedrwxr-xr-x.2rootroot6Jun2302:42homedata..[root@d1a05a7d5efe/]#cdhomedata/[root@d1a05a7d5efehomedata]#lltotal0[root@d1a05a7d5efehomedata]#touch21yunwei.txt;echo123>>21yunwei.txt[root@d1a05a7d5efehomedata]#cat21yunwei.txt123
挂载本地服务器上的一个目录/home/data到容器os456 目录/homedata中
home/data事先里边建立一个文件1.txt并内容hello world
[root@docker5home]#dockerrun-d-ti--nameos456-v/home/data:/homedatacentos[root@docker5home]#dockerexec-tios456/bin/bash[root@9347d5ef84ffhomedata]#cd/homedata;cat1.txthelloworld
通过上边两个容器os123 和os456,基本了解了如何创建数据卷以及如何挂载本地目录到数据卷中。注意,两个容器中的如果是单独挂载的数据卷(即没有挂载同一个数据卷容器),那么数据是互不影响的,进入不同的数据卷相同目录下比如/homedata,内容可以不一样。
注意:删除容器的时候,数据卷不会删除。如果要删除容器的时候同时删除数据卷,需加上-v参数。比如: docker rm os456 -v /homedata
数据卷容器建立的容器很多时候不是单一的,需要容器之间进行数据共享,进行数据同步和更新操作。这样就需要建立一个数据卷容器。
数据卷容器就是一个普通的容器,里边带有设置好的数据卷,专门提供给其他容器挂载使用。 通过–volumes-from 数据卷容器名 来实现。
我有一个网站程序放到了服务器本机的/home/webdata目录 ,下边创建一个数据卷容器webdata,同时将我服务器上的/home/webdata挂载到数据卷容器的/web目录:
[root@docker5home]#dockerrun-d-ti--namewebdata-v/home/webdata:/home/webcentos
进入容器并查看数据
[root@docker5home]#dockerexec-tiwebdata/bin/bash[root@289598d6e24d/]#cd/home/web/[root@289598d6e24dweb]#lltotal7872drwxr-xr-x.3rootroot54Mar272013META-INFdrwxr-xr-x.6rootroot4096Dec252014WEB-INFdrwxr-xr-x.3rootroot63Mar272013cssdrwxr-xr-x.2rootroot8192Mar272013flags-rw-r--r--.1rootroot97Mar272013index.jspdrwxr-xr-x.2rootroot4096Mar272013jsdrwxr-xr-x.2rootroot6Jun2303:43probe
通过这里建立1.txt 并插入内容,可以看到服务器上的/home/webdata数据是同步的。可见容器以及目录挂载都没问题。
[root@docker5home]#dockerrun-dti--volumes-fromwebdata--nameos147centos[root@docker5home]#dockerrun-dti--volumes-fromwebdata--nameos258centos
分别创建了两个容器,都通过–volumes-from webdata 挂载了同一个数据卷容器,进入os147 和os258 分别查看/home/web可见数据都是存在的,于是这里就实现了数据的共享同步。
[root@docker5home]#dockerexec-tios147/bin/bash[root@b4cfa4c4e11c/]#cd/home/web/[root@b4cfa4c4e11cweb]#lltotal7876-rw-r--r--.1rootroot11Jun2303:461.txtdrwxr-xr-x.3rootroot54Mar272013META-INFdrwxr-xr-x.6rootroot4096Dec252014WEB-INFdrwxr-xr-x.3rootroot63Mar272013cssdrwxr-xr-x.2rootroot8192Mar272013flags-rw-r--r--.1rootroot97Mar272013index.jspdrwxr-xr-x.2rootroot4096Mar272013jsdrwxr-xr-x.2rootroot6Jun2303:43probe
说明:
1,可以多次使用–volume-from参数从多个容器挂载多个目录。 也可以从其他已经挂载了数据卷的容器来挂载数据卷(类似传递)。
2,再次强调:如果删除了挂载的容器,数据卷不会被自动删除。如果要删除容器的时候同时删除数据卷,需加上-v参数。
通过数据卷容器进行数据备份、数据恢复和数据迁移
备份
我们创建一个专门用来备份probe的容器:probebak进行备份数据卷容器中的数据,命令如下
dockerrun-dti--volumes-fromwebdata--nameprobebak-v/home/web_probebak:/backupcentostarzcvf/backup/web_probe.tar.gz/home/web
命令为创建一个专用备份的容器probebak,挂载了数据卷容器webdata,同时将服务器本地目录 /home/web_probebak挂载到了备份容器上的/backup目录容器启动以后,会执行tar zcvf /backup/web_proce.tar.gz /home/web操作,完成服务器上/home/web备份,打包到/backup/web_proce.tar.gz,也就是打包到了/home/web_probebak/web_probe.tar.gz 实现了数据备份。
恢复
创建一个容器os999 ,挂载有数据卷 /testdata
[root@docker5home]#dockerrun-v/testdata--nameos999centos/bin/bash
再建一个容器,通过–volumes-from os999挂载刚才设置好的数据卷,解压数据:
[root@docker5home]#dockerrun--volumes-fromos999-v/home/web_probebak:/backupbusyboxtarzxvf/backup/web_probe.tar.gzUsageofloopbackdevicesisstronglydiscouragedforproductionuse.Eitheruse`--storage-optdm.thinpooldev`oruse`--storage-optdm.no_warn_on_loop_devices=true`tosuppressthiswarning.home/web/home/web/probe.ziphome/web/probe/home/web/css/home/web/css/classic/home/web/css/classic/datasourcetest.css
读到这里,这篇“docker数据管理的方法是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。