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

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

Docker數據存儲之Volumes詳解

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

默認容器的數據的讀寫發生在容器的存儲層,當容器被刪除時其上的數據將會丟失。所以我們應該盡量保證容器存儲層不發生寫操作,為了實現數據的持久化存儲我們需要選擇一種方案來保存數據,當前有以下幾種方式:

  • Volumes
  • Bind mounts
  • tmpfs mounts

下圖展示了這三種技術:

Docker,數據存儲,Volumes

Volumes

Volumes(數據卷)是一個可供一個或多個容器使用的位于宿主機上特殊目錄,它擁有以下特性:

  • 數據卷可以在容器間共享和重用
  • 對數據卷的寫入操作,不會對鏡像有任何影響
  • 數據卷默認會一直存在,即使容器被刪除

使用數據卷的目的是持久化容器中的數據,以在容器間共享或者防止數據丟失(寫入容器存儲層的數據會丟失)。

使用數據卷的步驟一般分為兩步:

  1. 創建一個數據卷
  2. 使用-v或--mount參數將數據卷掛載容器指定目錄中,這樣所有該容器針對該指定目錄的寫操作都會保存在宿主機上的Volume中。

Volume管理

創建一個Volume:

$ docker volume create my-vol

查看Volumes:

$ docker volume lslocal    my-vol
$ docker volume inspect my-vol[ {  "Driver": "local",  "Labels": {},  "Mountpoint": "/var/lib/docker/volumes/my-vol/_data",  "Name": "my-vol",  "Options": {},  "Scope": "local" }]

我么可以看到創建的Volume my-vol保存在目錄/var/lib/docker/volumes/下,以后所有針對該Volume的寫數據都會保存中目錄/var/lib/docker/volumes/my-vol/_data下。

刪除一個Volume:

$ docker volume rm my-vol

或者刪除所有未使用的Volumes:

docker volume prune

掛載數據卷到容器目錄

創建了一個Volume之后,我們可以在運行容器時通過指定-v或--mount參數來使用該Volume:

使用--mount參數:

$ docker run -d / --name=nginxtest / --mount source=nginx-vol,destination=/usr/share/nginx/html / nginx:latest

source指定volume,destination指定容器內的文件或文件夾。

或者使用-v參數:

$ docker run -d / --name=nginxtest / -v nginx-vol:/usr/share/nginx/html / nginx:latest

掛載成功后,容器從/usr/share/nginx/html目錄下讀取或寫入數據,實際上都是從宿主機的nginx-vol數據卷中讀取或寫入數據。因此Volumes或Bind mounts也可以看作是容器和宿主機共享文件的一種方式。

-v參數使用冒號分割source和destination,冒號前半部分是source,后半部分是destination。

如果你掛載一個還不存在的數據卷,Docker會自動創建它。(因此創建數據卷那一步非必需)

如果容器中的待掛載的目錄不是一個空目錄,那么該目錄下的文件會被復制到數據卷中。(Bind mounts下,宿主機上的目錄總會覆蓋容器中的待掛載目錄)

-v參數和--mount參數總的來說功能幾乎相同,唯一的區別是在運行一個service時只能夠--mount參數來掛載數據卷。

使用只讀數據卷

有些情況下,我們希望某個數據卷對某個容器來說是只讀的,可以通過添加readonly選項來實現:

$ docker run -d / --name=nginxtest / --mount source=nginx-vol,destination=/usr/share/nginx/html,readonly / nginx:latest

或者使用-v參數:

$ docker run -d / --name=nginxtest / -v nginx-vol:/usr/share/nginx/html:ro / nginx:latest

 

參考文章

https://docs.docker.com/storage/volumes/#share-data-among-machines

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泉州市| 宁陕县| 泌阳县| 南皮县| 安国市| 宣武区| 聊城市| 岱山县| 江达县| 汉川市| 闸北区| 盐山县| 石景山区| 茌平县| 松溪县| 沛县| 佳木斯市| 平和县| 平谷区| 衢州市| 仁怀市| 五河县| 揭阳市| 桐乡市| 渝北区| 出国| 浦北县| 囊谦县| 林周县| 青神县| 万山特区| 华池县| 鹤庆县| 思南县| 浙江省| 兴宁市| 台南市| 肇源县| 平和县| 怀宁县| 柳林县|