centos – 如何告诉Docker将dm/LVM后端用于卷而不是vfs

我最近听到(来自RedHat的人),“direct-LVM”(devicemapper)是生产设置的推荐存储后端,所以我想在CentOS 7 VM上尝试一下. (其中loopback-LVM似乎是默认值).

所以我创建了一个单独的数据磁盘和带有2个LV的VG用于数据和元数据,将它们传递到docker配置并启动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
 ...
 ...

但今天当我启动一个生成大量本地数据的容器时(因为我不需要坚持进行测试,我没有在启动时将其映射到任何地方),我注意到,Volume-Data全部被放入/ var / lib / docker / vfs目录而不是我期望的LVM精简池.

事实上,这填补了我根本意图保持小的根源.

这是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(在数据容器中隐式创建或显式)放到配置的存储后端?

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

最佳答案
您需要指定一个像“-g / docker”这样的挂载点.

相关文章

最近一直在开发Apworks框架的案例代码,同时也在一起修复Apw...
最近每天都在空闲时间努力编写Apworks框架的案例代码WeText。...
在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中,...
最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...