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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

數(shù)據(jù)卷的命名在 Docker 中是唯一的,讓多個(gè)容器掛載同一個(gè)數(shù)據(jù)卷, 只需要指定同一個(gè)數(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í),如果數(shù)據(jù)卷不存在,Docker 會(huì)自動(dòng)創(chuàng)建,如果同名數(shù)據(jù)卷已經(jīng)存在,則直接引用。

這里我們?cè)傺a(bǔ)充一些常用的數(shù)據(jù)卷操作:

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

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

3. 對(duì)比兩種掛載方式

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

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

掛載目錄屬于用戶自行維護(hù),你就必須手動(dòng)處理所有權(quán)限問題,好處就在于這種方式與宿主機(jī)的文件交換更方便一些。

4. 小結(jié)

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

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