Direct-LVM在重新启动后停止工作

tur*_*nco 5 docker

为了在生产中运行Docker,我遵循https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/#configure-direct-lvm-mode-for-production中的步骤

一切似乎都很好.但如果我因某种原因重新启动,一切都会搞砸.即使我删除了所有内容/var/lib/docker并且我lvremove, vgremove and pvremove仍然运行它仍然说Error starting daemon: error initializing graphdriver: devmapper: Unable to take ownership of thin-pool (docker-thinpool) that already has used data blocks并且拒绝开始.

我知道必须有一些文档显示如何使direct-lvm设置持久反对重启.重启后,有些东西会自动恢复设置.我找不到任何东西.

那么如何实现我的direct-lvm设置的持久性呢?

tur*_*nco 4

幸运的是,Docker 社区中有人理解了这个问题并分享了他们的解决方案。解决方案是: https: //github.com/projectatomic/docker-storage-setup

apt install -y thin-provisioning-tools
mkdir /usr/lib/docker-storage-setup
mkdir /etc/sysconfig
git clone https://github.com/projectatomic/docker-storage-setup.git     /opt/docker-storage-setup
cp /opt/docker-storage-setup/docker-storage-setup.sh /usr/bin/docker-storage-setup
cp /opt/docker-storage-setup/docker-storage-setup.service /lib/systemd/system/docker-storage-setup.service
cp /opt/docker-storage-setup/libdss.sh /usr/lib/docker-storage-setup
VG=docker DATA_SIZE=95%FREE STORAGE_DRIVER=devicemapper /opt/docker-storage-setup/docker-storage-setup.sh

systemctl enable docker-storage-setup
lvrename docker/thinpool docker/docker-pool
Run Code Online (Sandbox Code Playgroud)

/lib/systemd/system/docker.service 中的 systemd 服务文件中的相关部分需要更新为--storage-opt=dm.thinpooldev=/dev/mapper/docker-docker--pool