修改docker loop设备

12 篇文章 0 订阅
6 篇文章 0 订阅

docker默认启动一个100g的loop设备用于存储image和container的运行空间。

生产环境必须修改,不能使用默认生成的loop设备:只有100g大小。而且受制于root所在目录空间(要是free space少于100g,则100g也用不到)

官方文档里面有修改办法:

https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/#/configure-direct-lvm-mode-for-production


这里根据官方文档列出一个修改脚本。

https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/#/configure-direct-lvm-mode-for-production


parted --script /dev/sdb "mklabel gpt" 
parted --script /dev/sdc "mklabel gpt" 
parted --script /dev/sdb "mkpart primary 0% 100%" 
parted --script /dev/sdc "mkpart primary 0% 100%" 
parted --script /dev/sdb "set 1 raid on" 
parted --script /dev/sdc "set 1 raid on"


yum install -y mdadm
echo "y" | mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1
pvcreate /dev/md0
vgcreate docker /dev/md0
lvcreate --wipesignatures y -n thinpool docker -l 90%VG
lvcreate --wipesignatures y -n thinpoolmeta docker -L 10G
lvconvert -y --zero n -c 512K --thinpool docker/thinpool --poolmetadata docker/thinpoolmeta
tee /etc/lvm/profile/docker-thinpool.profile <<EOF
activation {
    thin_pool_autoextend_threshold=80
    thin_pool_autoextend_percent=20
}
EOF
lvchange --metadataprofile docker-thinpool docker/thinpool
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<EOF
{
  "storage-driver": "devicemapper",
   "storage-opts": [
     "dm.thinpooldev=/dev/mapper/docker-thinpool",
     "dm.use_deferred_removal=true",
     "dm.use_deferred_deletion=true"
   ]
}
EOF
systemctl stop docker
rm -rf /var/lib/docker/*
systemctl daemon-reload
systemctl start docker


docker info > txt 2>txt
msg=`cat txt |grep -o  "WARNING: Usage of loopback"`
echo $msg
if [ -n "$msg" ];then
    echo "ERROR:Failed to setup Loop!!!!"
fi
rm -rf txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值