docker的資料卷管理方法

2021-08-06 03:30:29 字數 1683 閱讀 7750

資料卷是乙個可以供乙個或多個容器使用的特殊目錄。

可以達到以下目的:

1. 繞過「拷貝寫」系統,以達到本地磁碟io的效能,(比如執行乙個容器,在容器中對資料卷修改內容,會直接改變宿主機上的資料卷中的內容,所以是本地磁碟io的效能,而不是先在容器中寫乙份,最後還要將容器中的修改的內容拷貝出來進行同步。)

2. 繞過「拷貝寫」系統,有些檔案不需要在docker commit打包進映象檔案。

3. 在多個容器間共享目錄

4. 在宿主和容器間共享目錄

5. 在宿主和容器間共享乙個檔案。

docker run 在建立容器時使用 -v 引數可以掛載乙個或多個資料捲到當前執行的容器中,-v 的作用是將宿主機上的目錄作為容器的資料卷掛載到容器中,使宿主機和容器之間可以共 享乙個目錄。

掛載資料捲到新建立的容器上:

--name paremeter -v /tmp/data1:/data1 -v /tmp/data2:/data2 rhel7 /bin/bash #進入rhel7映象搭載的parameter容器中的bash -v後面的是掛載的情況(可重複使用)

-v 引數可以重複使用,掛載多個資料捲到容器中,冒號前面的是宿主機的目錄(本地目錄 不存在 docker 會自動建立),冒號後面的是容器中的掛載目錄。

注:docker commit 時卷的資料不會被儲存。 預設掛載可以讀寫資料卷,也可以唯讀掛載:

--name parameter2 -v /tmp/data2:/data2:ro rhel /bin/bash #在後面 +:ro 為唯讀掛載

掛載宿主機檔案:

docker run -it --name patameter3 -v /etc/yum.repos

.d/rhel-***.repo:/etc/yum.repos

.d/rhel-***.repo:ro rhel7 /bin/bash

#這樣就實現了yum倉庫的共享搭建

資料卷容器:

docker run -it

--name vm1 --volumes-from data rhel7 /bin/bash

docker run -it

--name vm2 --volumes-from data rhel7 /bin/bash

測試效果如下

docker attach vm1

bash-4.2

# cd /sharedata/

bash-4.2

# touch vm1file

docker attach vm2

bash-4.2

# cd /sharedata/

bash-4.2

# ls

passwd vm1file

bash-4.2

# touch vm2file

在物理機上檢視

ls /tmp/sharedata/ passwd 

vm1file vm2file

備份資料卷:

docker run --rm --volumes-from

data

-v /tmp/backup:/backup rhel7 tar cf /sharedata

/backup/test.tar

Docker 資料卷管理

資料卷介紹 宿主機無法直接訪問容器中的檔案 容器中的檔案沒有持久化,導致容器刪除後,檔案資料也隨之消失 容器之間無法直接訪問相互的檔案 為解決這些問題,docker加入了資料卷 volumes 機制,能很好解決上面問題,以實現 容器與主機之間,容器與容器之間共享檔案 容器中的資料持久化 將容器中的資...

Docker 資料卷管理

建立資料卷 管理資料卷許可權 1.docker run v hostdir guestdir privileges2.卷共享應用,配置,資料等 掛載宿主機檔案 使用資料卷容器共享資料 1.建立資料卷容器 docker create v shiyanloudata name shiyanloudb u...

Docker容器資料管理(資料卷 資料卷容器)

在docker容器的實際使用中,經常會遇到容器的資料持久化,容器之間的資料共享等問題,通常我們有兩種解決方案 1 資料卷 data volumes 就是將容器內資料直接對映到本地主機環境的指定檔案目錄之中,可以理解為容器掛載乙個虛擬資料卷然後 對映到乙個主機目錄中 2 資料卷容器 data volu...