如何告诉Docker使用dm / LVM后端而不是vfs

我最近听到(从RedHat的家伙),“direct-LVM”(devicemapper)是推荐的存储后端的生产设置,所以我想在CentOS 7虚拟机上尝试一下。 (其中loopback-LVM似乎是默认的)。

所以我创build了一个单独的数据磁盘和VG,数据和元数据有两个LV,将它们传递到dockerconfiguration文件中,启动docker …到目前为止,看起来像这样:

# ps auxwf ... /usr/bin/docker -d --selinux-enabled -H unix://var/run/docker.sock \ --log-level=warn --storage-opt dm.fs=xfs \ --storage-opt dm.datadev=/dev/vg_data/docker-data \ --storage-opt dm.metadatadev=/dev/vg_data/docker-meta \ --storage-opt dm.basesize=30G --bip=172.17.42.1/24 \ # docker info Containers: 8 Images: 145 Storage Driver: devicemapper Pool Name: docker-253:0-34485692-pool Pool Blocksize: 65.54 kB Backing Filesystem: xfs Data file: /dev/vg_data/docker-data Metadata file: /dev/vg_data/docker-meta Data Space Used: 4.498 GB Data Space Total: 34.36 GB Data Space Available: 29.86 GB Metadata Space Used: 6.402 MB Metadata Space Total: 104.9 MB Metadata Space Available: 98.46 MB ... ... 

但是今天,当我开始一个容器生成相当多的本地数据(因为我不需要坚持testing,我没有在启动时在任何地方映射这个卷),我注意到,卷数据全部投入/var/lib/docker/vfs docker /var/lib/docker/vfs目录,而不是我所期望的LVM thinpool。

这实际上是填补了我意想不到的根源。

这是Docker-Host所看到的磁盘布局:

 # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk +-sda1 8:1 0 500M 0 part /boot +-sda2 8:2 0 9.5G 0 part +-centos_system-root 253:0 0 8.5G 0 lvm / +-centos_system-swap 253:1 0 1G 0 lvm [SWAP] sdb 8:16 0 50G 0 disk +-vg_data-docker--data 253:2 0 32G 0 lvm | +-docker-253:0-34485692-pool 253:4 0 32G 0 dm | +-docker-253:0-34485692-... 253:5 0 30G 0 dm | +-docker-253:0-34485692-... 253:6 0 30G 0 dm +-vg_data-docker--meta 253:3 0 100M 0 lvm +-docker-253:0-34485692-pool 253:4 0 32G 0 dm +-docker-253:0-34485692-... 253:5 0 30G 0 dm +-docker-253:0-34485692-... 253:6 0 30G 0 dm 

我如何让Docker把Volumes(隐式地创build或显式的在Data-containers中)放到configuration的存储后端?

或者这真的只会用于(基本)图像,我的期望是完全错误的?

您需要指定一个像“-g / docker”这样的挂载点。