999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

管理Docker容器的數據卷

2017-03-08 15:52:59
網絡安全和信息化 2017年10期
關鍵詞:信息

Docker容器數據卷的功能

數據卷從本質上說,是存在于Docker宿主機的文件系統中。數據卷既可以是目錄也可以是文件,Docker容器可以借助于數據卷技術,與宿主機進行數據共享。數據卷中的同一個目錄和文件,可以支持多個容器進行訪問,這樣就實現了容器間的數據共享和交互。

數據卷在容器啟動時進行初始化,如果容器使用的鏡像在掛載點包含了數據,這些數據會復制到新初始化的數據卷中。數據卷可在容器間共享和重用,容器對數據卷的修改是即時進行的,所有的修改可以直接體現的數據卷中。數據卷的變化不會對鏡像更新造成影響。

為容器添加數據卷的命令格式為“sodu docker run-v ~/container_data:/data-it ubuntu /bin/bash”,其中的“-v”參數可指定數據卷在本機文件系統中的目錄和在容器中映射的目錄名。

在Ubuntu的終端窗口中執行“docker run-it-v~/datavalume:/data ubuntu/bin/bash”命令,來創建包含數據卷的容器,其中的“~/datavalume”為本地目錄,處于當前用戶的Home目錄下。如果該目錄不存在,命令運行后會自動創建。“/data”為容器中的目錄名。

該命令運行后就啟動了該容器,執行“ls”命令,在返回信息中可以看到名為“data”的目錄。在其中可以自由的存儲數據,例如執行“touch /data/c1”,“echo"this is new dictory">/data/c1”命令,可在其中創建一個新的文件并寫入數據。執行“exit”命令退出容器,執行“ls-l”命令,可看到本機上存在“datavolume”目 錄,執 行“ls-l datavolume”命令,可看到在上述容器中存儲的數據,這充分說明數據卷和容器是彼此獨立的。

執 行“docker ps -l”命令,顯示剛才創建的鏡像。執行“docker inspect xxxxxxxxxxxx”命令,顯示該鏡像的元數據,在其中顯示了上述數據卷信息,其中的“xxx”參數表示該鏡像的ID。為數據卷添加訪問權限的命令格式為“sudo docker run -v ~/datavolume:/data:ro -it ubuntu/bin/bash”。

還以上述例子進行說明,執 行“docker run-it-v~/datavalume:/data:ro ubuntu/bin/bash”命令,創建一個鏡像,為其設置數據卷,并設置其擁有只讀權限。當掛載了數據卷后,只能讀取其中的數據,當試圖向其中寫入數據時,系統就會提示出錯。

執 行“exit”命令退出容器,執行“docker inspect rqt1”命令,在返回信息中的數據卷名稱后會顯示“VolumesRW:{"/data":false}”信息,說明其沒有寫權限。除了使用“run”命令,在創建容器時添加數據卷外,還可以使用Dockerfile指令創建包含數據卷的鏡像,并利用該鏡像創建容器。例如,執行“vim Dockerfile”命令,在其中添加“From ubuntu:14.04”,“VOLUME [/datavolume1,/datavolume1]”,“CMD/bin/bash”行,其中使用了“Volume”指令創建了兩個數據卷。

和上述命令不同,在Dockfile中創建的數據卷是無法映射到已經存在的本地文件目錄中的。在鏡像構建時指定的數據卷,會在容器創建時,創建指定名稱的數據卷。

運行不同鏡像的不同容器,所創建的數據卷也是不同的。執行“docker build-t dormancypress/xxx.”命令,構建該鏡像,其中的“xxx”為鏡像名稱。執行“docker run--name rqt3-it dormancypress/rqt”命令,運行名稱為“rqt3”容器。

執 行“ls” 命 令,在新建的容器中自動掛載 了“datavolume1” 和“datavolume2”兩個目錄。執行“exit”命令退出容器,執 行“docker inspect rqt3”命令,在返回信息中的“Volumes”欄中顯示上述兩個數據卷,與其對應的本地路徑是Docker自動創建的。如果執行“docker run--name rqt4-it dormancypress/rqt”等命令,創建新的容器,對其進行檢測的話,會發現上述數據卷的路徑是迥然不同的。因此,按照這種方法創建的數據卷是無法在不同容器間共享的。

創建Docker數據卷容器

為了解決該問題,可以使用數據卷容器(Data Container)來實現共享。數據卷容器指的是用命名的容器掛載數據卷,其他的容器通過掛載該容器實現數據共享,這樣的容器就是數據卷容器。在Docker主機中,數據卷容器掛載了一個本地目錄,其他容器通過連接該數據卷容器,來實現數據的共享。掛載數據卷容器的語法規則是“docker run--volume-from [CONTAINER NAME]”。例如,執行“docker run --name rqt4 -it dormancypress/rqt”命令,創建名為“rqt4”的容器。

進入其中的“datavolume1”目錄,在其中存儲名為“test.c”的文件。執行“exit”命令退出,執 行“docker run--name rqt5 --volumes-from rqt4 ubuntu /bin/bash”命令,創建名為“rqt5”的容器,用來掛載上述“rqt4”容器。在該容器中執行“ls”命令,可以看到已經掛載了在“rqt4”中加載的“datavolume1”和“datavolume2”數據卷。執行“ls /datavolume1”命令,可以顯示在其中存儲的文件。同理,在其中可以存儲更多的文件。

當退出該容器,執行“docker run--name rqt6-volumes-from rqt4 ubuntu/bin/bash”命令,創建的新容器,依然可以看到上述數據卷,并在“datavolume1”中顯示所有存在的文件。

這樣,通過使用名為“rqt5”的數據卷容器,就可以在不同的容器之間共享數據了。而且并不要求使用者確切的連接到已知的Docker宿主機的文件目錄,這對于多用戶的使用環境是很重要的,避免暴露Docker服務器的實際目錄信息。

當退出所有的容器 后, 執 行“docker inspect-format="{{.volume}}"rqt5”命令,在返回信息中很清晰的看到,使用數據卷容器掛載數據卷,并不會直接的反映數據卷容器的信息,而直接顯示其所掛載的數據卷目錄。即使執行“docker rm rqt4”命令,刪除掛載數據卷的容器,當執 行“docker attch rqt5”命令啟動“rqt5”等容器后,依然可以正常的訪問其掛載的目錄。

通過數據卷容器來掛載數據卷,容器在其中的作用只是用來傳遞數據卷配置信息。執行“docker run --name rqt8 -it dormancypress/rqt”命令,創建名為“rqt4”的容器。執行“docker run--name rqt9--volumes-from rqt8 ubuntu/bin/bash”命令,來掛載“rqt8”容器。在該容器中的“datavolume1”目錄中寫入“newfile.sh”文件。之后退出該容器。執行“docker rm -v rqt8”命令,刪除“rqt8”容器,其中的“-v”參數可以同時刪除其中的數據卷。但是,當再次啟動“rqt9”容器,依然可以在其中的“datavolume1”目錄中查看到之前存儲的文件,并可以存儲新的文件。

備份和恢復數據卷

與備份相關的命令格式為“docker run --volumesfrom [container name]-v$(pwd):/backup ubuntu tar vcf /backup/backup.tar[container data volume]”。在該命令行中使用 了“--volumes-from”參數掛載了需備份數據的容器名,實際上是將當前創建的容器指向參數中容器掛載的目錄。“-v”參數指定了需要保存數據的路徑,可以是當前本機的路徑。將需要備份的數據容器與備份目錄,同時掛載到執行備份命令的容器上,而需要備份數據的容器,實際上也是掛載在本機上的數據卷中。

例如,執行“cocker restart rqt5”,“docker attach rqt5”命令,重啟并登錄到“rqt5”容器上。當需要備份中的“datavolume1”數據卷時,可以先退出該容 器,執 行“docker run--name rqt10--volumesfrom rqt5 -/~beifen:/backup:wr ubuntu/bin/bash tar vcf/backup/rqt5.tar/datavolume1”命令,可以針對“rqt5”中的數據卷進行備份,新建立的容器為“rqt10”,將其復制到本機中當前用戶目錄下的“beifen”目錄中,“/backup”為容器中指定的目錄,“datavolume1”為需要備份的數據卷。當執行完畢后,在Docker主機本地上打開當前用戶目錄,可以看到名為“beifen”的目錄,其中包含了備份的數 據。 執 行“docker run--volumes-from [container name] -v$(pwd):/backup ubuntu tar xvf /backup/backup.tar [container data volume]”之類的命令,可以通過解壓還原操作,將備份的數據還原回去。

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
大眾創業(2009年10期)2009-10-08 04:52:00
展會信息
展會信息
展會信息
展會信息
展會信息
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: A级毛片无码久久精品免费| 亚洲中文精品人人永久免费| 伊人久久综在合线亚洲91| 欧美人与牲动交a欧美精品| 国产青青操| 国产成人乱无码视频| 国产亚洲高清在线精品99| 欧美福利在线观看| 美女免费精品高清毛片在线视| 久久青青草原亚洲av无码| 国产在线观看人成激情视频| 亚洲AV无码久久天堂| 67194亚洲无码| 四虎国产精品永久在线网址| 久热中文字幕在线| 国产精品熟女亚洲AV麻豆| 少妇精品网站| 国产女人18水真多毛片18精品 | 国产亚洲现在一区二区中文| 亚洲男人天堂2020| 国产内射一区亚洲| 成年网址网站在线观看| 亚洲第一视频区| A级毛片无码久久精品免费| 欧美一级特黄aaaaaa在线看片| 玖玖精品在线| 国产麻豆福利av在线播放 | 久久久久久久久久国产精品| 亚洲欧美在线综合图区| 亚洲二三区| 99久久这里只精品麻豆| 欧美一级高清片欧美国产欧美| 欧美一区中文字幕| 亚洲视频二| 成人国产精品2021| 日本成人福利视频| 自拍偷拍欧美日韩| 国产一区在线观看无码| 亚洲最大福利网站| 91午夜福利在线观看| 国内精品九九久久久精品| 国产乱子伦一区二区=| 欧美成人国产| 成·人免费午夜无码视频在线观看| 国产成年无码AⅤ片在线| 在线网站18禁| 一区二区三区四区精品视频| 日韩福利在线视频| 欧美成人免费午夜全| 国产亚洲精品97AA片在线播放| 日韩精品一区二区三区免费在线观看| 欧美一级特黄aaaaaa在线看片| 红杏AV在线无码| 无码视频国产精品一区二区 | 欧美福利在线观看| 五月激激激综合网色播免费| 国产精品亚洲一区二区三区在线观看| 激情视频综合网| 97国产在线视频| 制服丝袜一区二区三区在线| 久草视频福利在线观看| 国产自产视频一区二区三区| 国产高清在线观看91精品| 日韩中文欧美| 欧美专区日韩专区| 亚洲激情区| 无码综合天天久久综合网| 免费精品一区二区h| 制服丝袜国产精品| 美女裸体18禁网站| 亚洲国产看片基地久久1024| 97国产成人无码精品久久久| 国产成人精品免费视频大全五级| 亚洲一级毛片免费观看| 欧美在线网| 亚洲无码高清一区| 亚洲码一区二区三区| 国产白浆在线| 91久久夜色精品国产网站| 第一页亚洲| 国产高颜值露脸在线观看| 国产视频a|