Docker 資料管理

2021-10-10 02:29:58 字數 3040 閱讀 7901

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