資料卷是乙個可供容器使用的特殊目錄,有如下特性:
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。使用首先建立dbdata資料卷容器並寫入檔案:filea、fileb、filec--volumes-from dbdata
引數來讓worker容器掛載dbdata的資料卷;使用$:/backup
引數來掛載本地目錄到worker容器的/backup目錄。worker啟動後,使用tar命令將/dbdata下的內容備份為容器內的/backup/backup.tar
執行備份命令建立備份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 資料卷 資料卷是乙個可供容器使用的特殊目錄,它繞過檔案系統。特性 資料卷可在容器間共享和重用。對資料卷的修改會立即生效。對資料卷的更新,不影響映象。捲會一直存在,直到沒有...