怎么理解docker持久化存儲(chǔ)和數(shù)據(jù)共享

本篇內(nèi)容主要講解“怎么理解docker持久化存儲(chǔ)和數(shù)據(jù)共享”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么理解docker持久化存儲(chǔ)和數(shù)據(jù)共享”吧!

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供喀左網(wǎng)站建設(shè)、喀左做網(wǎng)站、喀左網(wǎng)站設(shè)計(jì)、喀左網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、喀左企業(yè)網(wǎng)站模板建站服務(wù),10年喀左做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

數(shù)據(jù)持久化的第一種方式Data Volume

使用Data Volume:

  • 首先在Dockerfile中定義 Volume ["/var/lib/MySQL"],這個(gè)路徑是容器中的路徑,數(shù)據(jù)文件就存在這個(gè)路徑下

  • 將這個(gè)路徑映射到宿主機(jī)的硬盤上,通過-v選項(xiàng)

    • docker run -v mysql:/var/lib/mysql

使用Data Volume持久化的方式,是因?yàn)槲覀內(nèi)萜魇且粋€(gè)數(shù)據(jù)源的產(chǎn)生地方,本身會(huì)產(chǎn)生文件和數(shù)據(jù),而我們不想讓我們的文件和數(shù)據(jù)隨著容器的消失而消失,因此用這種方式持久化。

數(shù)據(jù)持久化的第二種方式Bind Mounting

這種方式和第一種方式的區(qū)別是:

  • Data Volume 需要在Dockerfile中定義需要?jiǎng)?chuàng)建的Volume,而Bink Mounting不需要,我們只需要在啟動(dòng)容器的時(shí)候指定本地的目錄和容器中的目錄的對應(yīng)關(guān)系就可以了:

    • docker run -v /home/aaa:/root/aaa

    • 這樣本地的目錄文件和容器中的文件是同步的,如果本地的文件做了修改,那么容器中的文件也會(huì)修改。

創(chuàng)建一個(gè)Dockerfile,內(nèi)容如下:

FROM nginx:latest

WORKDIR /usr/share/nginx/html
COPY index.html index.html

這個(gè)可以將本地的index.html 拷貝到容器中的/usr/share/nginx/html下面,

index.html的內(nèi)容如下:

<body>
<h2>hello docker !</h2>
</body>

執(zhí)行build:

ocker build -t vincent/my-nginx .
Sending build context to Docker daemon  3.072kB
Step 1/3 : FROM nginx:latest
 ---> 719cd2e3ed04
Step 2/3 : WORKDIR /usr/share/nginx/html
 ---> Using cache
 ---> ebda8a0ae3aa
Step 3/3 : COPY index.html index.html
 ---> e3e9c5946773
Successfully built e3e9c5946773
Successfully tagged vincent/my-nginx:latest

創(chuàng)建一個(gè)容器:

docker run -d -p 80:80 --name web vincent/my-nginx
2cc59b89c8f4c2d60c65ad5b7490fec11c727f38a30c72a0d777209e2ea2b987

驗(yàn)證一下:

curl 127.0.0.1
<body>
<h2>hello docker !</h2>
</body>

說明可以訪問!

刪除這個(gè)容器:

docker rm -f web

重新創(chuàng)建容器,并且添加參數(shù)-v,將本地的一個(gè)文件映射到里面去:

docker run -d -v $(pwd):/usr/share/nginx/html -p 80:80 --name web vincent/my-nginx
ec423f40c66477471f38d8bc8a1002a1767e99d810b69b4c991446b9ced5fdea

$(pwd)表示當(dāng)前路徑。

進(jìn)入到容器中,創(chuàng)建一個(gè)文件test.txt:

docker exec -it web /bin/bash
root@ec423f40c664:/usr/share/nginx/html# ls
Dockerfile  index.html
root@ec423f40c664:/usr/share/nginx/html# touch test.txt

退出后,在宿主機(jī)可以看到這個(gè)文件test.txt。修改文件內(nèi)容,可以同步修改宿主機(jī)的內(nèi)容,說明文件已經(jīng)同步了。

因?yàn)槲覀兊乃拗鳈C(jī)的目錄$(pwd)和容器中的目錄/usr/share/nginx/html是同步的。

到此,相信大家對“怎么理解docker持久化存儲(chǔ)和數(shù)據(jù)共享”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

新聞標(biāo)題:怎么理解docker持久化存儲(chǔ)和數(shù)據(jù)共享
文章分享:http://bm7419.com/article8/gipiip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計(jì)網(wǎng)站營銷、虛擬主機(jī)、網(wǎng)站維護(hù)、網(wǎng)站內(nèi)鏈

廣告

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

搜索引擎優(yōu)化