《容器镜像的备份及恢复方案.docx》由会员分享,可在线阅读,更多相关《容器镜像的备份及恢复方案.docx(8页珍藏版)》请在三一办公上搜索。
1、ENVPKGRE1.EASE1-bmterRUNset-xcreatengnxusergropfirsttobeconsistentthroughoutdockervariantsH(Uddgroup-system-gid101n9inxEthadduser-system-YrsabM-IogM-ingroupnginx-no-crwtt-hofnc-home/nonexistentrecos*,nginxuser*-shdlbool.sks-kcy5cfvcr5.ncthkpJZkeyKrvcrubuntuem0hkp80.pool.sks-kcyscrvers.ftttr80p9p.mit
2、du:doechoFetchingGPGkey$NGaNX_GPGKEYfromSswapt-keyadv-keyserverSserver*-keysetver-optiomtimeout*10ecvkeyseSNGINXGPGKEYwHafound三ycsHftbruk;donc:tot-zSfoufxttttechott211x:fadtofctcGPGkeySNGlNX_GPGKErHttexit1;APtretremove-purge-XKxemovt-y9nup9lHHrm-rfvarfW)ttaaftdpk9Arch-vS(dpkgfictarChiteCtlXftftn9inx
3、Pdu9e5*n9inx-SNGINX.VERSION|.$!PKG_RElEASejngmx-fnodulc-xsIt-SNGINX_VERS*ON$PKGJEIEASECgmX-modulc-geoNSNGlNX.VERSION)-$PKG.RE1.EASEngnx-module-imgc-filter三SNGlNX_VERSIoN)-$PKGRE1.EASE)ngmx-module-nSNGINXVERSION.$NJSVERSION)-$(PKGRE1.fAswHftcSdpkgArcbeinM11d64i386)9archesOfficialybuiMbupstreamechodeb
4、httpsnginx.orgkagemainiiedebiarbust。nginxetgpt0urmJitd119ExJist&apt-getupdate11)wereonMarchitectureupstreamdoesntoffidllbuildforfIctSbuldbinariesfromthepublishedsourcepackagesechodeb-vchttpi/nginjuorg/padogn/mianline/debian/bu%ternginx-/ctc/apt/$ourres.li$t.d/nginx.list# newdirectoryforstoringsource
5、sand.dcbfilesftfttempDir=S(mktemp-d)-Etachmod777StempDir# (777toensureAPTs_aptusercanaccessitt)# savelistofcurrently-installedpackagessobuilddependenciescanbedeanlyremovedlaterEtftsavedAptMark=S(apt-markShowmanual)# build.debfilesfromupstreamssourcepackages(whichareverifiedbyapt-get)EtEtapt-getupdat
6、eEtEtapt-getbuild-dep-ySnginxPackagesaa(cdStempDirEtftDEB.BUI1.DOPTIONS=nocheckparalld-$(nproc)Napt-getsource-compileSnginxPackages)UWedontremoveAPTlistsherebecausetheygetre-downloadedandremovedlater# resetapt-marksmanuallistsothatpurge-auto-removewillremoveallbuilddependencies#(whichisdoneafterWein
7、stallthebuiltpackagessowedonthavetoredownloadanyoverlappingdependenn)Etftapt-mrkshowmanualK3rg%apt-markautoknu1lftft-zSuvcdAptM3rk*t-markmanualSuvedAptMark;.createatemporarylocalAPTrepotoinstallfrom(sothatdependencyresolutiononbehandledbyAPT.asitshouldbe)ftftIsMAFheStempDireftfcdwStempDir*Hftdpkg-Sc
8、anpKiuigcs.Fckgft)HHgrep-Pc*j9e:,StempDirPckagesftftecho-dcbtrustedyefileStemPOirfetcaptSoUrCWJiSt4ftugi“workroundthefollowingAPTissuebyusingAcquire:6ZiPlndexes*f(overriding7etcapp1.conf.(Vdodcef-ip-i(kxes*)“Couldnotopenfile/var/)it/apt/)isb/partial/.tmp_tnip.0DW1jpQfk_._P!KUges-open(13:Rfrmissionde
9、nied).E:F4cdtofetchStOreMm岫pt1sW叼)ODVjpQfk_,_PcU9Couldnotopenfile/vM/lib/apt/lisWpertial/_tmp_tmp,00W1)pQfkE_._Pdu9CS-open(13:Rwmtssiondenied)Wt叩QFet-oAcquirt:izip*n(kxcsfal$eupdateesacEtEtapt-getinstall-no-istall-recommcnds-no-istalI-suggests-yJnginxPackagcsgettcxt-baHEtapt-getremove-purge-auto-rem
10、ove-yCa-CCrtifiCateSHHrm-rfvarlibaptlistsetcapt$ource$.list.d/nginx.listifwchavleftoversfrombuilding,Icfspurgeth-wfldhello-wofldIateKfce289e99ct9ISmonthsago14kB ,保存镇金至文件 dockersavehello-world/daHhegwori&imige.ta1.JCdM3JhIgrephclk-world-ifu9e.tar4z“期除UIB dockerrmi-fhello-worid:latntUnta99cd:helkwor1d
11、:UtestUntagged:helkHwodda2S6dfddf63G36dMef479d645abS88S1SO3(X611aS6f337ac7f2fdd86d7e4eDekted:sha256ct289c99cWb977dMl36fbc2a82b6b7d4372474Igrephclkworld“导入VIG Mttfkd-worldKIQwortdlatestfct28*99cW15EthS390184kB在一般安装了docker的机器上,可以使用dockersave将容器境像保存至压缩文件。如需要镜像时候再将容器镜像导入至本地。如果是一个已经运行了容器,在原有的镜像中修改了一些文件,是
12、否可以把相应的容器镜像进行备份?答案也是肯定的.“查全部运行的docefPS7CONTAINERK)IMAGECOMMANDCREATEDSTATUSPORTSHAMES77c3122319fOnginxalpinen9inxPdaemonof-w24houna90Up24hoursMcp*tvcrent-howof1dlatestfct289e99rtISmcmKago1.84*8容器镜像仓座有公有仓阵,也称第三方仓库,和企业内部自行搭建的称为,私有仓库。公有仓库(第三方仓库)公有的ImageRegiSter一股提供容器镜像免费上传和下在服务,也可提供付费镜像管理等服务.私有仓库私有仓库在企
13、业内部使用,不对外发布,在局域网内,访问效率高.使用公有ImageRegister,容器钱像的备份一般相应的企业或者组织会进行维护。如需要企业内快速和高效使用,可以本地搭建一个私有ImageRegiSter进行本地Mirror.使用私有ImageRegister,需要了解其相应的架构,将其重要的数据文件进行备份.比如Harbor将数据使用独立的volume挂载,相应的磁盘在机器上做快照或者选用RAID系列,也可搭建多个ImageRegister进行同步备份,也可将数据使用共享存储进行挂载.目前的共享存储多种多样,例如SAN,NAS,分布式存储等,可以结合企业已有的共享存储是指快照或者异地备份等
14、策略.ImHgeRegister能进行友好、高效、统一管理容器慢像.无论是采用公有ImHgeRegister还是私有ImageRegister,针对各个相应的软件服务将重要的数据备份,即能实现容器镜像的备份和恢发。5容器镜像的备份和恢复场景前面介绍了容器镜像存备份的场景以及相应的意义.针对不同的容器备份场景采用不同的容器潦像备份方式方法,如下所示是几种场景场景的解决方案。CI/CD流程中标准构建的容器镜像对于CI/CD流程中标准构建的容器镜像,其Dockerfile文件是标准,比如前面的java应用的DoekerfiIe,每个不同版本只需要替换其中的War包。此种场景中,只需要将Dockerf
15、ile进行版本管理,需要时将Dockerfile依赖的代码和环境是快速搭建和恢复,构建镜像,然后将镜像传送至ImageRegister,实现容器镜像存储在ImageRegister的生命周期较短保存,减轻ImageRegister的中容器镜像的存储压力。应用系统系统类应用,比如Ingress.CoreDNSlPormetheus等等,部署频次不高,同时镜像的个数也不多,这类应用应多重备份,多个ImageRegister之间备份,甚至可以参考上一章节的导出至文件进行备份,安全策略允许的前提下可以发布至公网的ImageRegister.安全审计安全审计通常时间跨度较长,如果一直存储在ImageRe
16、gister上,考无疑问有存储成本和ImageRegiSter镜像使用效率影响,此种场景可以分级进行备份.距离当前时间较长的镜像使用低成本的存储进行备份,距商当前时间短的镜像使用DOCkerfile、ImageRegiSter进行备份。总结本文介绍了容器镜像的本质,容器镜像的从代码,到Dockerfile,到镜像再到存储,再到业务运行的“一生.对于不同的需求有着不同的备份和存储的要求和意义。随着业务的增长和时间的推移,潦像的数量和存储的空间肯定都会面临挑战,所以一开始就需要明确存储和备份的业务需求,选择好对应的方案,再进行细化。就像使用ImageRegiSter也要细化容器镜像的生命周期,ImageRegister的存储方式,DockerRegister的高可用,监控、告警等等.希望本文从本质上介绍后,能给大家以更多的思考.