欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Docker持久化存儲之數(shù)據(jù)共享-創(chuàng)新互聯(lián)

持久化存儲 Data volume

要知道容器是有生命周期的。
docker默認的存儲方式:存儲類型:(strage driver:overlay2.xfs)

10年積累的網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有孝南免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

data volume有兩種掛載方式:

1)bind mount(用戶管理):將宿主機上的某個目錄或文件(不可以是沒有格式化的磁盤文件),掛載到容器中,默認在容器內(nèi)對此目錄是有讀寫權(quán)限的,如果只需要向容器內(nèi)添加文件,不希望覆蓋目錄,需要注意源文件必須存在,否則會被當做一個目錄bind mount給容器。
2)docker manager volume(docker自動管理):不需要指定源文件,只需要指定mount point(掛載點)。把容器里面的目錄映射到了本地。
這種方式相比bind mount 缺點是無法限制對容器里邊目錄或文件的權(quán)限。

使用第二種掛載方式,-v 掛載時,不指定源文件位置,則默認掛載的路徑是:

[root@sqm-docker01 _data]# pwd
/var/lib/docker/volumes/dd173640edd5b0205bb02f3c4139647be12528b38289b9f93f18123a6b1266a8/_data
#當有目錄掛載時,默認在/var/lib/docker/volumes/下會生成一串hash值,hash值下有一個_data的目錄,容器內(nèi)映射的文件就在此路徑下。

實例一:單臺dockerhost,容器間的數(shù)據(jù)共享

首先創(chuàng)建一個volume container:

volume container基本概念:**
  • volume container是專門為其他容器提供volume的容器。
  • volume container 提供的卷可以使bind mount,也可以是docker manager volume。

volume contianer的優(yōu)點:
與bind mount相比,不必為每一容器指定源文件路徑,所有路徑都在volume container中定義好,容器只需與volume container關(guān)聯(lián),從而實現(xiàn)容器與host的解耦。

(1)創(chuàng)建volume container:
首先我在本地創(chuàng)建容器需要掛載的web網(wǎng)頁目錄:
[root@sqm-docker01 ~]# mkdir html
[root@sqm-docker01 ~]# echo "hello volume_data" > html/index.html
#我直接使用了兩種掛載方式(基于busybox鏡像來創(chuàng)建):
[root@sqm-docker01 ~]# docker create  --name vc_data01 -v /root/html/:/usr/share/nginx/html -v /other/useful/tools/ busybox

注意:該vcdata01也為一個容器,但它的狀態(tài)是create。
Docker持久化存儲之數(shù)據(jù)共享

(3)基于volume container運行nginx容器:
[root@sqm-docker01 ~]# docker run -d --name test1 -p 80:80 --volumes-from vc_data01 nginx:latest
  • --volumes-from:指定數(shù)據(jù)卷

(4)訪問nginx的默認網(wǎng)頁:
Docker持久化存儲之數(shù)據(jù)共享
查看映射到本地默認路徑,會生成兩個hash值,代表掛載了兩個host path。
Docker持久化存儲之數(shù)據(jù)共享

實例二:跨主機實現(xiàn)數(shù)據(jù)共享

方法一:搭建nfs服務(wù):

環(huán)境:兩臺dockerhost(centos7)
docker01:172.16.1.30
docker02:172.16.1.31
nfs服務(wù)器:172.16.1.40

nfs server:

[root@nfs-server ~]# yum -y install nfs-utils  #安裝nfs服務(wù)
[root@nfs-server ~]# yum -y install rpcbind  #遠程傳輸控制協(xié)議

[root@nfs-server ~]# vim /etc/exports
Docker持久化存儲之數(shù)據(jù)共享

參數(shù)解釋:
*:表示所有地址,也可以自定義ip地址,或者網(wǎng)段
rw:可讀可寫
sync:同步數(shù)據(jù)到磁盤
no_root_squash:加上這個選項后,root用戶就會對共享的目錄擁有至高的權(quán)限控制,就像是對本機的目錄操作一樣。

[root@nfs-server ~]# mkdir /nfs              #創(chuàng)建共享目錄
[root@nfs-server ~]# systemctl start rpcbind    #先啟動該服務(wù)
[root@nfs-server ~]# systemctl start nfs

docker01和dcoker02測試是否能夠掛載:
Docker持久化存儲之數(shù)據(jù)共享

Docker持久化存儲之數(shù)據(jù)共享

docker01:
將本地目錄掛載到nfs服務(wù)器上:

創(chuàng)建網(wǎng)頁目錄:
[root@sqm-docker01 ~]# mkdir html

[root@sqm-docker01 ~]# vim /etc/fstab ##進入配置文件進行掛載
Docker持久化存儲之數(shù)據(jù)共享

[root@sqm-docker01 ~]# mount -a   #重新加載使其生效
[root@sqm-docker01 ~]# df -hT   #查看磁盤信息

Docker持久化存儲之數(shù)據(jù)共享

編寫網(wǎng)頁內(nèi)容:
[root@sqm-docker01 ~]# echo "hello docker02" > html/index.html
[root@sqm-docker01 ~]# cat html/index.html 
hello docker02
運行nginx容器:
[root@sqm-docker01 ~]# docker run -d --name nginx01 -p 80:80 -v /root/html/:/usr/share/nginx/html nginx:latest

Docker持久化存儲之數(shù)據(jù)共享

docker02:
掛載nfs:

[root@sqm-docker02 ~]# mkdir html    #創(chuàng)建掛載目錄
[root@sqm-docker02 ~]# vim /etc/fstab

Docker持久化存儲之數(shù)據(jù)共享
[root@sqm-docker02 ~]# mount -a #重新加載使其生效

//查看目錄文件是否同步:
[root@sqm-docker02 ~]# cat html/index.html 
hello docker02
//運行nginx容器:
[root@sqm-docker02 ~]# docker run -d --name nginx02 -p  80:80 -v /root/html/:/usr/share/nginx/html nginx

Docker持久化存儲之數(shù)據(jù)共享

訪問nginx頁面:
Docker持久化存儲之數(shù)據(jù)共享

我們在docker01上修改nginx頁面,測試docker02nginx頁面是否同步:

[root@sqm-docker01 ~]# echo "123456" > html/index.html

nginx02再次訪問:
[root@sqm-docker02 ~]# curl 127.0.0.1
123456

方法二:使用volume container

環(huán)境:兩臺dockerhost主機(centos7)
docker01:172.16.1.30
docker02:172.16.1.31

(1)docker01上創(chuàng)建目錄文件:
[root@sqm-docker01 ~]# mkdir html
[root@sqm-docker01 ~]# echo "hello docker02" > html/index.html
(2)編寫Dockerfile:
[root@sqm-docker01 ~]# vim Dockerfile

Docker持久化存儲之數(shù)據(jù)共享

//構(gòu)建dockerfile:
[root@sqm-docker01 ~]# docker build -t data:latest .  #鏡像名稱自定義

Docker持久化存儲之數(shù)據(jù)共享

(3)創(chuàng)建volume container并基于運行nginx容器:
[root@sqm-docker01 ~]# docker create  --name vc_data02 data:latest 

[root@sqm-docker01 ~]# docker run -d --name box1 -P --volumes-from  vc_data02 nginx
  • -P:隨機在宿主機生成端口,默認從32768開始。

訪問nginx網(wǎng)頁:
[root@sqm-docker01 ~]# curl 127.0.0.1:32768
hello docker02

(4)將volume container鏡像打包,并拷貝給docker02:
[root@sqm-docker01 ~]# docker save  --output  data.tar data:latest 
[root@sqm-docker01 ~]# scp data.tar root@172.16.1.31:/root/

docker02:

//導入鏡像
[root@sqm-docker02 ~]# docker load --input  data.tar
//創(chuàng)建volume container:
[root@sqm-docker02 ~]# docker create  --name vc_data03 data:latest
//基于container運行nginx:
[root@sqm-docker02 ~]# docker run  -d --name box2 -P --volumes-from vc_data03 nginx:latest

最后訪問nginx默認界面(確保與docker01上的nginx頁面相同)

[root@sqm-docker02 ~]# curl 127.0.0.1:32768
hello docker02

以上就是跨主機實現(xiàn)數(shù)據(jù)共享的多種方法,當然還有其他的方法,可能會在后續(xù)的博客中會寫到。

———————— 本文至此結(jié)束,感謝閱讀 ————————

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁題目:Docker持久化存儲之數(shù)據(jù)共享-創(chuàng)新互聯(lián)
標題路徑:http://chinadenli.net/article38/edpsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管動態(tài)網(wǎng)站用戶體驗網(wǎng)站設(shè)計網(wǎng)站內(nèi)鏈網(wǎng)站設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化