本文主要针对centOS7的docker存储插件devicemapper。
操作流程
操作之前将容器或镜像保存下来,(e.g.)如下:1
2
3
4# save
docker save ceph/daemon > ceph.tar
# load
docker load --input ceph.tar
停止docker服务1
service docker stop
删除docker所有的存储镜像和容器1
rm -rf /var/lib/docker
创建LVM物理卷,如果出现warning删除ext4标签1
2mkfs.ext4 /dev/sdb
pvcreate /dev/sdb
创建新的卷组vg-docker1
vgcreate vg-docker /dev/sdb
在vg-docker中创建data逻辑卷和metadata逻辑卷,用于docker容器和镜像存储(大小根据自己实际设置)1
2lvcreate -L 90G -n data vg-docker
lvcreate -L 4G -n metadata vg-docker
在/usr/lib/systemd/system/docker.service的/usr/bin/docker daemon -H fd://后面添加如下内容指定docker的数据池和元数据池1
--storage-driver=devicemapper --storage-opt dm.basesize=90G --storage-opt dm.datadev=/dev/vg-docker/data --storage-opt dm.metadatadev=/dev/vg-docker/metadata
dm.basesize表示每个容器运行时配置的容量大小。
重启docker服务1
2systemctl daemon_reload
service docker restart