国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

詳解Docker的持久化存儲和數據共享

2024-09-01 13:55:27
字體:
來源:轉載
供稿:網友

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

Data Volume 結構圖

Docker,持久化存儲,數據共享

Docker持久化數據的方案

  • 基于本地文件系統的Volume。可以再執行Docker create或Docker run時,通過-v參數將主機的目錄作為容器的數據卷。這部分功能便是基本的本地文件系統的volume管理。
  • 基于plugin的Volume,支持第三方的存儲方案,比如NAS,aws

Volume的類型

受管理的data Volume,由docker后臺自動創建。

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

數據持久化之Data Volume

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

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

Docker,持久化存儲,數據共享

在我們使用 docker run

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

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

Docker,持久化存儲,數據共享

此時我們刪除容器,發現volume數據卷還在,有保留。

Docker,持久化存儲,數據共享

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

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

Docker,持久化存儲,數據共享

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

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

進入mysql2容器中,mysql -uroot 進入數據庫中,發現當前數據庫數據和之前刪除的容器中的數據庫數據一樣。

數據持久化之bind Mounting

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

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

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 达孜县| 平湖市| 闵行区| 察哈| 宕昌县| 三河市| 亳州市| 西丰县| 丽江市| 屏东市| 英超| 平南县| 邯郸县| 临沧市| 井研县| 集贤县| 浦县| 化州市| 邵阳县| 宕昌县| 临邑县| 临朐县| 贞丰县| 宁河县| 深泽县| 桑日县| 武陟县| 铁岭市| 凤台县| 石首市| 肥西县| 穆棱市| 当涂县| 鸡泽县| 布拖县| 华安县| 永城市| 罗平县| 乌审旗| 隆化县| 广德县|