卷volume
bind
tmpfs
卷和繫結掛載可將容器中的檔案儲存在宿主機的檔案系統上,這樣即使在容器停止之後這些檔案也會被保留。linux上也可使用tmpfs掛載
相同之處
無論選擇使用哪種型別去使用,資料在容器內看來都是相同的,它被視為容器檔案系統中的目錄或單個檔案
不同之處
1、卷儲存:在於 由docker管理的主機檔案系統的一部分(在linux上:/var/lib/docker/volumes),非docker程序不應該修改這部分檔案系統。卷是在docker中保留資料的最佳方式
2、繫結掛載:就是把主機的本地目錄掛載到容器中某個掛載點,可以儲存在主機系統的任何位置,也可是重要的系統檔案或目錄,docker主機或docker容器上的非docker程序可以隨時修改他們。
3、tmpfs掛載:僅儲存在主機系統的記憶體中,而不會寫入主機系統的檔案系統。
data volume特點:
1、是目錄或檔案,而非沒有格式化的磁碟(塊裝置)
2、容器可以讀寫volume中的資料
3、volume資料可以被永遠的儲存,即使使用它的容器已經銷毀
data volume建立及使用
1、執行容器,並建立乙個資料卷掛載到容器的目錄上
[root@kvm02 ~]
# docker run -it -v /volume --rm busybox /bin/sh
/# ls /volume/
2、執行乙個容器,本地建立/test目錄,掛載到容器的/volume目錄上
[root@kvm02 ~]
# docker run -it --rm -v /opt/test:/volume busybox /bin/sh
/# ls /volume/
#對映到本地的資料卷
若使用者需要在容器之間共享一些持續更新的資料,最簡單的方法就是使用資料卷容器,資料卷容器只是乙個普通的容器,只不過是專門用它提供資料卷供其他容器掛載使用。
建立及使用
1、建立乙個名為web的資料卷,並在其中建立乙個資料卷掛載到/test下
[root@kvm02 ~]
# docker run -it --name b1 -v /opt/test:/web centos:6
2、其他容器使用--volumes-
from 引數來從多個容器掛載多個資料卷,還可以從其他已經掛載了容器卷的容器來掛載資料卷;
[root@kvm02 ~]
# docker run -it --name b2 --volumes-from b1 centos:6
[root@kvm02 ~]
# docker run -it --name b3 --volumes-from b1 centos:6
注:使用–volumes-from 引數所掛載資料卷的容器自身並不需要保持執行狀態
若刪除了掛載的容器,資料卷不會被自動刪除,必須在刪除最後乙個還掛載著它的容器時,使用docker rm -v命令來指定同時刪除關聯的容器
例:
1、建立乙個名為web的資料卷,並在其中建立乙個資料卷掛載到/test下
[root@kvm02 ~]
# docker run -it --name b1 -v /opt/test:/web centos:6
2、建立b2,b3與容器b1的資料卷進行關聯
[root@kvm02 ~]
# docker run -it --name b2 --volumes-from b1 centos:6
[root@kvm02 ~]
# docker run -it --name b3 --volumes-from b1 centos:6
3、複製乙個檔案到/opt/test的目錄下
[root@kvm02 ~]
# cp /etc/hosts /opt/test/
4、進入容器b3進行檢視關聯目錄下的檔案是否有
[root@kvm02 ~]
# docker exec -it b3 /bin/sh
sh-4.1# ls /web/
hosts
sh-4.1# echo hdehdweh > /web/xx.text #編譯乙個檔案在該目錄下
sh-4.1# ls /web/
hosts xx.text
5、在宿主機上檢視容器所建立的檔案是否存在
[root@kvm02 ~]
# ls /opt/test/
hosts xx.text
6、在其他容器上檢視是否檔案實現了共享
[root@kvm02 ~]
# docker exec -it b2 /bin/sh
sh-4.1# ls /web/
hosts xx.text
[root@kvm02 ~]
# docker exec -it b1 /bin/sh
sh-4.1# ls /web/
hosts xx.text
sh-4.1#
7、僅留乙個容器,其他容器刪除
[root@kvm02 ~]
# docker rm -f b1 b2
b1b2
8、檢視是否檔案還存在
[root@kvm02 ~]
# docker exec -it b3 ls /web
hosts xx.text
9、刪除容器的同時刪除資料卷
[root@kvm02 ~]
# docker rm -f -v b3
b310、檢視宿主機上的檔案是否還存在
[root@kvm02 ~]
# ls /opt/test/
hosts xx.text
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 資料卷 資料卷...