Docker:CentOS/RHEL額外配置
阿新 • • 發佈:2018-12-07
CentOS/RHEL 的使用者需要注意的事項
在 Ubuntu/Debian 上有 UnionFS
可以使用,如 aufs
或者 overlay2
,而 CentOS 和 RHEL 的核心中沒有相關驅動。因此對於這類系統,一般使用 devicemapper
驅動利用 LVM 的一些機制來模擬分層儲存。這樣的做法除了效能比較差外,穩定性一般也不好,而且配置相對複雜。Docker 安裝在 CentOS/RHEL 上後,會預設選擇 devicemapper
,但是為了簡化配置,其 devicemapper
是跑在一個稀疏檔案模擬的塊裝置上,也被稱為 loop-lvm
loop-lvm
的做法非常不好,其穩定性、效能更差,無論是日誌還是 docker info
中都會看到警告資訊。官方文件有明確的文章講解了如何配置塊裝置給 devicemapper
驅動做儲存層的做法,這類做法也被稱為配置 direct-lvm
。
除了前面說到的問題外,devicemapper
+ loop-lvm
還有一個缺陷,因為它是稀疏檔案,所以它會不斷增長。使用者在使用過程中會注意到 /var/lib/docker/devicemapper/devicemapper/data
所以對於 CentOS/RHEL 的使用者來說,在沒有辦法使用 UnionFS
的情況下,一定要配置 direct-lvm
給 devicemapper
,無論是為了效能、穩定性還是空間利用率。
或許有人注意到了 CentOS 7 中存在被 backports 回來的 overlay
驅動,不過 CentOS 裡的這個驅動達不到生產環境使用的穩定程度,所以不推薦使用。
來源:https://yeasy.gitbooks.io/docker_practice/image/rm.html