(五) Docker 容器資料卷

2022-01-13 20:52:24 字數 1522 閱讀 6914

1、什麼是資料卷

docker容器產生的資料,如果不通過docker commit生成新的映象,使得資料做為映象的一部分儲存下來,

那麼當容器刪除後,資料自然也就沒有了。

為了能儲存資料在docker中我們使用卷。

卷就是目錄或檔案,存在於乙個或多個容器中,由docker掛載到容器,但不屬於聯合檔案系統,因此能夠繞過union file system提供一些用於持續儲存或共享資料的特性:

卷的設計目的就是資料的持久化,完全獨立於容器的生存週期,因此docker不會在容器刪除時刪除其掛載的資料卷

特點:1:資料卷可在容器之間共享或重用資料

2:卷中的更改可以直接生效

3:資料卷中的更改不會包含在映象的更新中

4:資料卷的生命週期一直持續到沒有容器使用它為止

2、容器新增資料卷

命令方式

docker run -it -v /宿主機絕對路徑目錄:/容器內目錄 映象名

#代表將宿主機/usr/local/src中資料掛載到容器中home目錄

docker run -it -v /usr/local/src/:/home cento

#home後:ro代表唯讀

docker run -it -v /usr/local/src/:/home:ro cento

可以通過命令檢視資料卷是否掛載成功:docker inspect 容器id

dockerfile方式

可在dockerfile中使用volume指令來給映象新增乙個或多個資料卷

from centos

volume ["/test1","/test2"]

cmd echo "hello world"

cmd /bin/bash

說明:

出於可移植和分享的考慮,用-v 主機目錄:容器目錄這種方法不能夠直接在dockerfile中實現。

由於宿主機目錄是依賴於特定宿主機的,並不能夠保證在所有的宿主機上都存在這樣的特定目錄。

構建dockerfile檔案

# -f 指定dockerfile路徑 -t 新映象名稱

docker build -f /usr/local/src/dockerfile -t centos-redis-01 .

構建成功後可以通過docker images檢視映象。

可以通過命令檢視資料卷是否掛載成功並且可以檢視具體對應test1,test2的宿主機目錄:docker inspect 容器id

3、資料卷容器

命名的容器掛載資料卷,其它容器通過掛載這個(父容器)實現資料共享,掛載資料卷的容器,稱之為資料卷容器。

docker run -it --name centos-redis-02-vm --volumes-from centos-redis-01-vm  centos-redis-01

#代表centos-redis-02-vm共享centos-redis-01-vm 資料卷

Docker (五) 資料卷和資料卷容器

一 介紹 資料卷是乙個可供乙個或多個容器使用的特殊目錄,可以提供很多有用的特性 資料卷容器其實就是乙個普通的容器,只是專門用來提供資料卷,供其他的容器掛載。推薦優先使用資料卷容器。二 建立和使用資料卷 1.資料卷 v 在用 docker run 命令的時候,使用 v 標記來建立乙個資料卷並掛載到容器...

Docker入門 容器資料卷(五)

容器之間可以使用乙個資料共享技術!docker 容器中產生的資料,同步到本地!本地的資料同樣也可以同步到docker容器內!容器之間也可以資料共享。這就是卷技術!目錄的掛載,將我們容器的目錄,掛載到linux上面。類似資料庫的資料和應用是分開的,那麼這個時候不會因為誤刪容器,或者資料庫遷移而導致資料...

Docker 資料卷 資料卷容器

一,概念解析 1,資料卷 資料卷就是在宿主中可以在容器之間進行共享和重用的一系列和檔案和資料夾,通過docker run v命令可以將資料卷掛載到對應的容器目錄空間,進行檔案讀取,容器卷特性如下 資料卷可以在容器之間共享和重用,容器間傳遞資料將變得高效方便 對資料卷內資料的修改會立馬生效,無論是容器...