Docker提供了可插拔的存儲驅(qū)動程序架構(gòu)。它使我們能夠靈活地“插入”Docker中的存儲驅(qū)動程序。它完全基于Linux文件系統(tǒng)。
要實現(xiàn)這一功能,我們必須在docker守護進程的開始時就設(shè)置驅(qū)動程序。Docker守護程序只能運行一個存儲驅(qū)動程序,并且該守護程序?qū)嵗齽?chuàng)建的所有容器都使用相同的存儲驅(qū)動程序。
下表中列出了Docker中支持的存儲驅(qū)動程序 -
技術(shù) | 存儲驅(qū)動程序名稱 |
---|---|
OverlayFS | overlay 或 overlay2 |
AUFS | aufs |
Btrfs | btrfs |
Device Mapper | devicemapper |
VFS | vfs |
ZFS | zfs |
當前存儲驅(qū)動
查看守護程序使用哪個存儲驅(qū)動程序,可以使用以下命令。
$ docker info
可以看到上面的命令顯示了守護進程使用的存儲驅(qū)動程序。備份文件系統(tǒng)是extfs
。 extfs
表示覆蓋存儲驅(qū)動程序在文件系統(tǒng)的頂部運行。
后備文件系統(tǒng)是指用于在/var/lib/docker
錄下創(chuàng)建Docker主機的本地存儲區(qū)域的文件系統(tǒng)。
下表包含必須與主機備份文件系統(tǒng)相匹配的存儲驅(qū)動程序。
存儲驅(qū)動 | 常用 | 已禁用 |
---|---|---|
overlay | ext4xfs | btrfs aufs overlay zfs eCryptfs |
overlay2 | ext4xfs | btrfs aufs overlay zfs eCryptfs |
aufs | ext4xfs | btrfs aufs eCryptfs |
btrfs | btrfsonly | N/A |
devicemapper | Direct-lvm | N/A |
vfs | debugging only | N/A |
zfs | zfsonly | N/A |
注意: - “已禁用/Disabled on”表示某些存儲驅(qū)動程序無法在某些后臺文件系統(tǒng)上運行。
設(shè)置存儲驅(qū)動程序
可以通過dockerd命令按指定名稱來設(shè)置存儲驅(qū)動程序。以下命令啟動守護程序并設(shè)置新的驅(qū)動程序。
$ dockerd --storage-driver=devicemapper
稍后,可以通過以下命令檢查docker服務器驅(qū)動程序。
$ docker info