docker學習筆記(五) 資料管理

2021-08-17 08:42:11 字數 2135 閱讀 2601

資料卷是乙個可供容器使用的特殊目錄,有如下特性:

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

2 資料卷修改會立即生效

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

4 如果有容器使用資料卷,該捲會一直存在

在使用docker run的命令時,使用 -v 標記可以在容器內建立乙個資料卷,並且可以指定掛在乙個本地已有的目錄到容器中作為資料卷:

注意:預設掛載的資料卷的許可權是rw(可讀寫),如果要求ro(唯讀),則需要加上對應的ro引數,命令可改為:

資料卷容器用於使用者需要在容器間共享一些持續更新的資料,資料卷容器專門提供資料卷供其它容器掛載使用。

example:

建立資料卷容器db1

docker run -d --name db1 -v /dbdata -ti ubuntu bash
建立容器db2與db1共享dbdata的資料

在容器db1和容器db2任意乙個容器修改dbdata的內容,在兩個容器內均生效

如果刪除了掛載的容器,資料卷並不會被自動刪除,如果要刪除乙個資料卷,必須在刪除最後乙個還掛載它的容器時顯示使用docker rm -v命令指定同時刪除關聯的容器。在下圖可看到即使刪除db1,db2中仍然有db1_file和db2_file檔案。

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

備份:

使用下面的命令來備份dbdata資料卷容器內的資料卷:

docker run --volumes-from dbdata -v $:/backup --name worker ubuntu tar cvf /backup/backup.tar /dbdata
說明:

利用ubuntu映象建立乙個容器worker。使用--volumes-from dbdata引數來讓worker容器掛載dbdata的資料卷;使用$:/backup引數來掛載本地目錄到worker容器的/backup目錄。

worker啟動後,使用tar命令將/dbdata下的內容備份為容器內的/backup/backup.tar

首先建立dbdata資料卷容器並寫入檔案:filea、fileb、filec

執行備份命令建立備份tar包:

從下圖可以看到tar包已經打出來了,這樣就實現了備份

如果恢復資料到乙個容器,可以參照下面的操作。首先建立乙個帶有資料卷的容器dbdata2:

docker run -d -v /dbdata --name dbdata2 -ti ubuntu bash
然後建立另乙個新的容器,掛載dbdata2的容器,並使用tar命令解壓備份檔案到掛載的容器卷中即可:

成功恢復!

Docker學習 八 Docker資料管理

生產環境中使用docker的過程中,需要對資料進行持久化,或者需要在多個容器之間進行資料共享,這必然涉及容器的資料管理操作 容器中管理資料主要有兩種方式 1 資料卷 容器內資料直接對映到本地主機環境 2 資料卷容器 使用特定容器維護資料卷 資料卷是乙個可供容器使用的特殊目錄,它將主機作業系統目錄直接...

Docker入門之五資料管理

在docker使用過程中,需要對資料進行持久化或需要在多個容器之間進行資料共享,就會涉及容器的資料管理操作。主要有兩種方式 1.資料卷 2.資料卷容器。一 資料卷 資料卷是乙個可供容器使用的特殊目錄,將主機作業系統目錄直接對映進容器。它可以提供很多特性 1.資料卷可以在容器之間共享和重用,容器間傳遞...

《Docker 》筆記 5 資料管理

容器中管理資料主要有兩種方式 資料卷 data volumes 資料卷容器 data volume container是 6.1 資料卷 資料卷是乙個可供容器使用的特殊目錄,它繞過檔案系統。特性 資料卷可在容器間共享和重用。對資料卷的修改會立即生效。對資料卷的更新,不影響映象。捲會一直存在,直到沒有...