共計 2657 個字符,預計需要花費 7 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 Docker 存儲驅動的特性有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
可插拔的存儲驅動架構
Docker 的存儲驅動架構是可插拔的,可以讓你很方便的將適合你環境和用例的存儲驅動“插進”Docker。每個 Docker 存儲驅動都建立在一種 Linux 文件系統或者卷管理系統之上,也可以很自由地按照其自己的方法去實現鏡像層和容器層的管理。也就是說一些存儲驅動在不同的場景下會比其他的驅動性能更好。
一旦你決定了哪種驅動最合適,你就可以 Docker daemon 啟動之前設置驅動到 Docker 中,這樣你就可以在該存儲驅動上運行 Docker daemon 了,所有新容器都會使用這個驅動來創建了。下圖顯示了支持的驅動技術和它們對應的 Docker 存儲驅動名稱。
TechnologyStorage driver nameOverlayFSoverlay / overlay2AUFSaufsBtrfsbtrfsDevice MapperdevicemapperVFSvfsZFSzfs 可以通過 docker info 命令來查看當前 daemon 使用著哪種存儲驅動。
$ docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 1
Server Version: 1.12.6
Storage Driver: overlay2
Backing Filesystem: extfs
... output truncated ...
上面的輸出表示,Docker daemon 使用 overlay2 作為存儲驅動,而其 Backing Filesystem 是 extfs。也就是說,在我的環境中,overlay2 存儲驅動是在 ext 文件系統上操作的。后端文件系統指的是創建了 Docker host 的本地存儲區域 /var/lib/docker 的文件系統。
存儲驅動,可以運行在某種后端文件系統上,但也有些不支持的后端文件系統,它們之間的對應關系如下表:
Storage driver 后端文件系統不支持的后端文件系統 overlayext4 xfsbtrfs aufs overlay zfs eCryptfsoverlay2ext4 xfsbtrfs aufs overlay zfs eCryptfsaufsext4 xfsbtrfs aufs eCryptfsbtrfsbtrfs onlyN/Adevicemapperdirect-lvmN/Avfsdebugging onlyN/Azfszfs onlyN/A 想要設置存儲驅動,可以在 dockerd 啟動的時候加入 –storage-driver= name 的參數,也可以設置 DOCKER_OPTS 選項到 /etc/default/docker 文件中。下面的命令顯示了如何在 dockerd 命令中使用 devicemapper 存儲驅動。
$ dockerd --storage-driver=devicemapper
$ docker info
Containers: 0
Images: 0
Storage Driver: devicemapper
Pool Name: docker-252:0-147544-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: extfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 1.821 GB
Data Space Total: 107.4 GB
Data Space Available: 3.174 GB
Metadata Space Used: 1.479 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.146 GB
Thin Pool Minimum Free Space: 10.74 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.90 (2014-09-01)
Execution Driver: native-0.2
output truncated
存儲驅動的選擇會影響你容器應用的性能,所以很有必要理解存儲驅動之間的區別和優缺點,然后才能選擇合適的驅動。
共享存儲系統和存儲驅動
很多企業都從共享文件系統(如 SAN 和 NAS)中獲取存儲資源。通常情況下,這都能帶來更好的性能和更高可用性,還有如超配、副本刪除、壓縮等高級特性。
Docker 存儲驅動和數據卷都可以運行在這些共享存儲系統提供的存儲上,這使得 Docker 可以利用這些系統提供的優越性能和可用性。
使用哪種存儲驅動呢?
很多方面都會影響存儲驅動的選擇,不過有兩點必須記住:
?沒有哪種驅動適合所有的用戶場景;
?存儲驅動一直都在提升和改進;
此外,下面的內容,也可以提供一些指導意見。
穩定性
為了 Docker 環境更加穩定,你應該考慮一下一些建議:
?使用你 OS 發行版默認的存儲驅動。安裝 Docker 時,它會根據你的系統選擇默認的存儲驅動,穩定性是它選擇的一個主要方面。
?遵守 CS Engine compatibility matrix 指定的配置。CS Engine 是 Docker Engine 的商業化版本,它代碼基于開源的 Engine。不過它有一套限制的支持配置,而這個支持的配置使用最穩定成熟的存儲驅動。
經驗和專業技能
選擇你和你的團隊都有經驗的一種存儲。比如,你使用 RHEL 系列的 OS,你可能對 LVM 和 Device Mapper 很有經驗,因此,你應該使用 devicemapper 存儲驅動。
如果你對 Docker 提供的存儲驅動都沒有經驗,并且你希望使用簡單可用的穩定的 Docker 環境,那么你可以考慮使用你發行版默認的 Docker 存儲驅動。
看完了這篇文章,相信你對“Docker 存儲驅動的特性有哪些”有了一定的了解,如果想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!