第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 Docker 入門教程 Docker 入門教程 Docker 數(shù)據(jù)管理 - 數(shù)據(jù)卷

Docker 數(shù)據(jù)管理 - 數(shù)據(jù)卷

我們知道,Docker 提供了兩類數(shù)據(jù)管理的方式:

  1. 掛載宿主機目錄或文件;
  2. 使用數(shù)據(jù)卷;

上節(jié)課我們學習了掛載宿主機目錄或文件的數(shù)據(jù)管理方式。本節(jié),我們介紹如何使用 Docker 數(shù)據(jù)卷。但是明明可以使用掛載宿主機目錄或文件的方式,為什么還要使用數(shù)據(jù)卷呢?

其實,使用數(shù)據(jù)卷的好處就在于:我們不必自己維護一個外部路徑掛載和存儲的關系,借助Docker管理數(shù)據(jù),并且通過語義化數(shù)據(jù)卷命名,更加方便直觀地使用它來數(shù)據(jù)共享。

1. 使用數(shù)據(jù)卷

在使用數(shù)據(jù)卷進行掛載時,我們只需指定容器中被掛載的目錄即可:

docker run -d -it --name busybox -v mydata:/tmp busybox

Tips:mydata 是 Docker 數(shù)據(jù)卷的名稱, 不是宿主機的目錄或文件,為了避免混淆,指定當前路徑下的目錄或文件掛載方式時,源地址需要使用絕對路徑。

數(shù)據(jù)卷掛載到容器后,我們可以通過 docker inspect busybox 看到容器中數(shù)據(jù)卷掛載的信息。
圖片描述

數(shù)據(jù)卷示例

其中,Type代表這是掛載類型為volme卷,Name標識數(shù)據(jù)卷的名稱是我們之前指定的mydataSource標明在要掛載的數(shù)據(jù)卷在宿主機的真實路徑為/var/lib/docker/volumes/mydata/_data,其中/var/lib/docker/volumes/是一個由Docker統(tǒng)一管理的存放路徑,Destination表示掛載到 busybox 容器內的路徑是/tmp。

2. 共用數(shù)據(jù)卷

通過掛載相同的數(shù)據(jù)卷,讓多個容器能夠操作數(shù)據(jù)卷中的數(shù)據(jù),實現(xiàn)容器間的目錄共享。

數(shù)據(jù)卷的命名在 Docker 中是唯一的,讓多個容器掛載同一個數(shù)據(jù)卷, 只需要指定同一個數(shù)據(jù)卷名稱即可。

docker run -d -it --name busybox -v mydata:/tmp busybox
docker run -d -it --name busybox2 -v mydata:/tmp busybox

掛載數(shù)據(jù)卷時,如果數(shù)據(jù)卷不存在,Docker 會自動創(chuàng)建,如果同名數(shù)據(jù)卷已經(jīng)存在,則直接引用。

這里我們再補充一些常用的數(shù)據(jù)卷操作:

# 刪除數(shù)據(jù)卷
docker volume rm mydata
# 手動創(chuàng)建數(shù)據(jù)卷
docker volume create mydata
# 刪除那些沒有被容器引用的數(shù)據(jù)卷
docker volume prune

Tips:使用 docker rm -f busybox busybox2 移除不再使用的容器。

3. 對比兩種掛載方式

數(shù)據(jù)卷 是受控存儲,是由 Docker 引擎進行管理維護的。

使用卷,你可以不必處理 uid、SELinux 等各種權限問題,Docker 引擎在建立卷時會自動添加安全規(guī)則,以及根據(jù)掛載點調整權限。并且可以統(tǒng)一列表、添加、刪除。另外,除了本地卷外,還支持網(wǎng)絡卷、分布式卷。

掛載目錄屬于用戶自行維護,你就必須手動處理所有權限問題,好處就在于這種方式與宿主機的文件交換更方便一些。

4. 小結

數(shù)據(jù)卷實際上也是宿主機的一個目錄,這個目錄由 Docker 管理,利用數(shù)據(jù)卷可以方便地將數(shù)據(jù)在多個容器中共享。

按照 Docker 最佳實踐的要求,容器不應該向其存儲層內寫入任何數(shù)據(jù),容器存儲層要保持無狀態(tài)化。所有的文件寫入操作,都應該使用數(shù)據(jù)卷或者綁定掛載宿主目錄,在這些位置的讀寫會跳過容器存儲層,直接對宿主發(fā)生讀寫,其性能和穩(wěn)定性更高。