Docker 資料管理

2021-10-18 14:01:09 字數 3527 閱讀 9005

資料卷管理

資料卷容器

docker cp 需要拷貝的檔案或目錄 容器名:容器內的目錄路徑
如:把宿主機當前目錄下的lxf.sh檔案,拷貝到lxfubuntu1容器下的/data目錄中

docker cp lxf.sh lxfubuntu1:/data
docker cp 容器名:容器內需要拷貝的檔案或目錄 宿主機目錄
如:把lxfubuntu1容器中/data目錄下的lxf.sh檔案,拷貝到宿主機~/lxf/目錄下

docker cp lxfubuntu1:/data/lxf.sh ~/lxf/
資料卷管理就是將容器的某個目錄,對映到宿主機,作為資料儲存同步的目錄

命令:

docker run -itd --name [容器名字] -v [宿主機目錄]:[容器目錄]

[映象名稱]

[命令(可選)

]

下面進行操作示範:

在宿主機建立乙個名為data的目錄,這個名字可任意

mkdir data
將宿主機的data目錄對映到容器中的/home目錄

docker run -it -v ~/lxf/data:/home ubuntu /bin/bash
-v:掛載乙個資料卷

接著,我在容器的/home目錄下建立乙個lxfdir目錄

此時,宿主機的data目錄下也會同步多了乙個lxfdir目錄

這個宿主機的data目錄就叫資料卷。

除了宿主機與容器之間可以進行資料互動外,如果兩個容器的目錄都對映到同乙個宿主機目錄,那還可以讓多個容器間進行資料共享。

資料卷容器也是乙個容器,目的是專門用於提供資料卷給其它容器掛載,從而實現多個容器之間同步資料的更新。

命令:

docker create -v [容器資料卷目錄] --name [容器名字]

[映象名稱]

[命令(可選)

]

ubuntu映象做了檔案對映,得到資料卷目錄為/data的模板容器

注意看該模板容器的狀態是created,即並沒有執行,容器名為determined_nightingale命令:

docker run --volumes-from [資料卷容器id/name] -tid --name [容器名字]

[映象名稱]

[命令(可選)

]

建立lxfubuntu1容器

在容器的根目錄下,會基於上述模板建立了乙個名為data的目錄(原ubuntu映象中是沒有的)

我們再建立乙個lxfubuntu2容器

此時,我們在lxfubuntu1data目錄下建立乙個名為lxf的目錄,lxfubuntu2data目錄中也會同步到相同的資料

這樣,只要我們是基於資料卷模板容器建立出來的容器,就可以得到乙個資料共享的data目錄,在該data目錄中對檔案的操作,都可以同步到各個由該模板容器建立出來的容器中。

資料卷容器可以實現多個容器的資料同步,但是資料是儲存在資料卷內,並沒有儲存到宿主機的檔案目錄中。

如果想將宿主機的檔案同步到各個容器,可以使用docker cp將宿主機下的檔案拷貝到資料卷容器即可,反之亦然

如:把宿主機當前目錄下的lxf.sh檔案,拷貝到資料卷容器determined_nightingale/data目錄下

docker cp lxf.sh determined_nightingale:/data
如:把資料卷容器determined_nightingale/data目錄下的lxf.sh檔案,拷貝到宿主機~/lxf目錄下

docker cp determined_nightingale:/data/lxf.txt ~/lxf
是不是有人要問了,如果我基於資料卷模板建立容器時,順帶設定資料卷呢?,命令如下所示

docker run -it -v ~/lxf/data:/data --volumes-from determined_nightingale --name lxfubuntu3 ubuntu /bin/bash
很遺憾,只有資料卷配置生效,資料卷容器配置不生效~

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 資料卷 資料卷...