濮阳杆衣贸易有限公司

主頁 > 知識庫 > 詳解Docker的持久化存儲和數(shù)據(jù)共享

詳解Docker的持久化存儲和數(shù)據(jù)共享

熱門標簽:電銷機器人價值 外呼系統(tǒng)坐席費計入會計哪個科目 電銷機器人怎么接線路 撫順地圖標注 如何分析地圖標注 新余高德地圖標注怎么修改 大連400電話如何申請 達亞電銷機器人官網(wǎng) 高德地圖標注好做嗎

有些容器會自動產(chǎn)生一些數(shù)據(jù),為了不讓數(shù)據(jù)隨著container的消失而消失,保證數(shù)據(jù)的安全性。例如:數(shù)據(jù)庫容器,數(shù)據(jù)表的表會產(chǎn)生一些數(shù)據(jù),如果我把container給刪除,數(shù)據(jù)就丟失。為了保證數(shù)據(jù)不丟失,這就有了Volume的存在。

Data Volume 結(jié)構(gòu)圖

Docker持久化數(shù)據(jù)的方案

  • 基于本地文件系統(tǒng)的Volume??梢栽賵?zhí)行Docker create或Docker run時,通過-v參數(shù)將主機的目錄作為容器的數(shù)據(jù)卷。這部分功能便是基本的本地文件系統(tǒng)的volume管理。
  • 基于plugin的Volume,支持第三方的存儲方案,比如NAS,aws

Volume的類型

受管理的data Volume,由docker后臺自動創(chuàng)建。

綁定掛載的Volume,具體掛載位置可以由用戶指定。

數(shù)據(jù)持久化之Data Volume

以官方鏡像mysql的dockerfile文件為例 。其中dockerfile通過volume指定了當前容器中要備份的文件路徑,但是并沒有指定說要保存到宿主機的哪個位置。

volume:映射容器中的文件到本地宿主機硬盤中

在我們使用 docker run

啟動mysql鏡像容器的時候,容器會默認在宿主機生成一個volume,至于位置在哪,名字是什么,可以通過如下命令查看

#查看所有volume
docker volume ls
#刪除指定volume
docker volume rm [volume name]
#查看volume詳細
docker volume inspect [volume name]

此時我們刪除容器,發(fā)現(xiàn)volume數(shù)據(jù)卷還在,有保留。

此時我們會覺得這個data volume name 的名字很長,很不好理解。我們可以通過 -v 如下命令來指定生成的volume name docker run -d -v mysql:/var/lib/mysql --name mysql mysql5.7
-v

:前參數(shù)是volume name, :后面的是要備份的文件目錄(容器)

此時我們刪除容器,volume數(shù)據(jù)卷還在,我們用這個名為mysql的volume作為一個新容器的數(shù)據(jù)卷,覆蓋它。

docker run -d -v mysql:/var/lib/mysql --name mysql2 mysql5.7

進入mysql2容器中,mysql -uroot 進入數(shù)據(jù)庫中,發(fā)現(xiàn)當前數(shù)據(jù)庫數(shù)據(jù)和之前刪除的容器中的數(shù)據(jù)庫數(shù)據(jù)一樣。

數(shù)據(jù)持久化之bind Mounting

和上面Data Volume不同的是,bind Mounting只能通過 docker run -v 方式啟動,無法使用dockerfile文件的方式。

運行容器的時候指定本地的一個文件目錄和容器中的一個文件目錄的映射,通過這個可以做文件數(shù)據(jù)同步,2方無論哪一方有修改,另一方都會同步內(nèi)容

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

這個時候 -v :前面的參數(shù)是本機文件路徑, :后面是docker文件目錄(容器)

值得注意的是 ,使用bind Mounting方式做數(shù)據(jù)卷的映射時,首次 docker run -v 運行,如果本機的文件夾是沒有內(nèi)容的,docker容器中的文件夾是有內(nèi)容的,則本機的會覆蓋dokcer容器中的,也就是容器中原本有內(nèi)容的也會沒有內(nèi)容。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:南通 海東 黃石 湖南 遼源 楊凌 新鄉(xiāng) 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標題《詳解Docker的持久化存儲和數(shù)據(jù)共享》,本文關(guān)鍵詞  詳解,Docker,的,持久化,存儲,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解Docker的持久化存儲和數(shù)據(jù)共享》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解Docker的持久化存儲和數(shù)據(jù)共享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    杭州市| 久治县| 开化县| 潼关县| 肇源县| 曲阜市| 西华县| 徐州市| 东明县| 舒兰市| 廊坊市| 蓬安县| 洞头县| 万宁市| 梓潼县| 修武县| 从化市| 炎陵县| 那曲县| 乐平市| 淮滨县| 昆山市| 楚雄市| 玉溪市| 龙井市| 永和县| 荥经县| 昔阳县| 昂仁县| 万山特区| 阳春市| 介休市| 聊城市| 黄大仙区| 娄烦县| 黔江区| 衡东县| 博白县| 高雄县| 泽普县| 乌鲁木齐县|