Docker中的資料管理

2021-10-13 20:00:38 字數 2220 閱讀 6193

使用docker時往往需要對資料進行持久化,或者需要在多個容器之間進行資料傳輸

2、資料卷容器

簡單理解就是先在本地建立乙個目錄,然後容器去掛載這個目錄,無論哪邊修改這個目錄內容哪邊都能看見(類似於 mount 掛載,推薦掛載檔案所在的目錄,不推薦只掛載乙個檔案)

特性資料卷可以在容器之間共享和重用

無論在容器內還是在本地主機上進行操作都會立刻對資料卷內資料生效

對資料卷的更新不會影響到映象

捲會一直存在,知道沒有容器使用時可以安全的解除安裝它

/var/lib/docker/volumes/ 路徑下儲存所建立的資料卷位置

# volume

# -d 指定卷驅動程式名稱(預設為「本地」)

docker volume create -d local test_volume

# ls 列出已有資料卷

# inspect 檢視詳細資訊

# rm 刪除資料卷

在建立容器時將本地主機的任意路徑掛載到容器內作為資料卷,以這種形式建立的資料稱為繫結資料卷

在docker container run 命令時可以使用 --mount 來使用資料卷, --mount 支援三種型別的資料卷:

ⅰ volume:普通資料卷,在/var/lib/docker/volumes/ 路徑下

ⅱ bind:繫結資料卷,對映到主機指定路徑下

ⅲ tmpfs:臨時資料卷,只存在於記憶體中

# 例如

# 等價於↓ -d 後台執行 -p 通過nat機制將容器標記暴露的埠自動對映到本地主機的臨時埠 -v 掛載主機上的檔案捲到容器內

測試:

# -v 掛載主機上的檔案捲到容器內

docker container run -it -d --name centos1 -v /var/lib/docker/volumes/test_volume/:/test_volume centos:latest

本地路徑必須是絕對路徑,容器內路徑可以為相對路徑,如果目錄不存在,docker會自動建立

docker掛載資料卷預設是讀寫許可權(rw),使用者也可以設定為唯讀(ro),但是加了ro後容器內對所掛載資料卷內資料就無法修改

# -v 掛載主機上的檔案捲到容器內

docker container run -it -d --name centos1 -v /var/lib/docker/volumes/test_volume/:/test_volume:ro centos:latest

如果使用者需要在多個容器之間共享一些持久更新的資料,最簡單的方式就是使用資料卷容器

資料卷容器也是乙個容器,目的就是專門提供資料卷給其他容器掛載

特徵該資料卷容器不需要保持執行狀態

刪除掛載的容器後資料卷並不會被刪除

導管建立乙個容器並在容器內建立乙個資料卷掛載到/data_container

# -v 掛載主機上的檔案捲到容器內 如果目錄不存在,docker會自動建立

建立兩個容器使用 --volumes-from 來掛載 data 容器中的 /data_container 資料卷

隨機進入其中乙個容器

Docker 資料管理

1.在容器中管理資料主要有兩種方式 資料卷 data volumes 資料卷容器 data volume containers 資料卷資料卷是乙個可供乙個或多個容器使用的特殊目錄,它繞過 ufs,可以提供很多有用的特性 資料卷可以在容器之間共享和重用 對資料卷的修改會立馬生效 對資料卷的更新,不會影...

Docker 資料管理

容器中管理資料主要有兩種方式 1 資料卷 data volumes 容器內的資料直接對映到宿主機,也就是使用宿主機的目錄作為根目錄,容器裡的目錄對映到根目錄,如下例1 2 資料卷容器 data volume containers 使用特定的容器維護資料卷,也就是使用乙個容器的目錄作為根目錄,另乙個容...

Docker資料管理

使用docker過程中,需要能檢視容器內應用產生的資料,或需要將容器內的資料進行備份,甚至在多個容器之間進行資料的共享,這些都將涉及容器資料管理的操作 容器中管理資料主要的兩種形式 1 資料卷 data volumes 2 資料卷容器 data volume containers 1 資料卷 資料卷...