Docker基礎教程 資料管理

2021-08-15 15:30:29 字數 2195 閱讀 6273

我們在使用docker 的時候,會產生很多資料,比如web伺服器啊,資料庫之類的,有時我們還需要備份或複製這些資料,這就需要涉及到docker的資料管理了。

docker容器中管理資料主要分兩種:

資料卷是乙個可供容器使用的特殊目錄,它會繞過檔案系統,可以提供很多有用的特性:

資料卷的使用類似於linux下對目錄或檔案進行mount操作。

在用docker run命令的時候,使用-v標記可以在容器中建立乙個資料卷,多次使用該引數可以建立多個資料卷。

[plain]view plain

copy

也可以直接指定掛載乙個本地已有目錄到容器中作為資料卷,同樣使用-v引數,依然是剛才的例子:

[plain]view plain

copy

這個本地目錄的路徑必須是絕對路徑,如果目錄不存在,會被自動建立。

docker掛載資料卷的預設許可權是讀寫(rw),我們也可以指定為唯讀(ro):

[plain]view plain

copy

加了唯讀後,容器內掛載的資料卷資料是無法修改的。

-v標記也可以從主機掛載單個檔案到容器中作為資料卷。

比如需要記錄在容器中輸入過的歷史命令:

[plain]view plain

copy

docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash  

docker映象是如此的方便,針對以上的資料管理,也提供了乙個普通的容器:資料卷容器。

他可以使容器間共享一些持續性的資料變得更加簡單。

使用步驟:

[plain]view plain

copy

docker run -it -v /dbdata --name dbdata ubuntu  

[plain]view plain

copy

docker run -it --volumes-from dbdata --name db1 ubuntu  

docker run -it --volumes-from dbdata --name db2 ubuntu  

此時db1和db2都掛載同乙個資料捲到相同的/dbdata目錄下。三個容器任意乙個在該目錄的資料修改,其他容器都能看到。

可以多次使用--volumes-from引數來從多個容器掛載多個資料卷。也可以從其他已經掛載了容器卷的容器來掛載資料卷:

[plain]view plain

copy

docker run -d --name db3 --volumes-from db1 training/postgres  

如果刪除了掛載的容器(包括dbdata、db1、db2),資料卷並不會被自動刪除。

如果需要刪除乙個資料卷,必須在刪除最後乙個還掛載它的容器時,顯示使用docker rm -v 來指定同時刪除關聯的容器。

可以利用資料卷容器對其中的資料卷進行備份、恢復,以實現資料的遷移。

備份

備份dbdata資料卷容器中資料卷命令如下:

[plain]view plain

copy

docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu tar cvf /backup/backup.tar /dbdata  

解釋: 恢復

恢復資料到容器的操作:

[plain]view plain

copy

docker run -v /dbdata --name dbdata2 ubuntu /bin/bash  

[plain]view plain

copy

docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar  

docker為資料管理提供了充分的支援,並且,使用資料卷容器是乙個不錯的選擇。

Docker 基礎 資料管理

使用者在使用 docker 的過程中,往往需要能檢視容器內應用產生的資料,或者需要把容器內的資料進行備份,甚至多個容器之間進行資料的共享,這必然涉及容器的資料管理操作。容器中管理資料主要有兩種方式 資料卷 data volumes 資料卷容器 data volume containers 資料卷是乙...

Docker 基礎 資料管理

docker 基礎 資料管理 使用者在使用 docker 的過程中,往往需要能檢視容器內應用產生的資料,或者需要把容器內的資料進行備份,甚至多個容器之間進行資料的共享,這必然涉及容器的資料管理操作。容器中管理資料主要有兩種方式 資料卷 data volumes 資料卷容器 data volume c...

Docker 基礎 資料管理

使用者在使用 docker 的過程中,往往需要能檢視容器內應用產生的資料,或者需要把容器內的資料進行備份,甚至多個容器之間進行資料的共享,這必然涉及容器的資料管理操作。容器中管理資料主要有兩種方式 資料卷 data volumes 資料卷容器 data volume containers 資料卷是乙...