st4rtx
st4rtx
خواندن ۲ دقیقه·۴ سال پیش

تغییر storage driver در داکر

موقع استفاده از داکر یک نکته بسیار مهم storage driver هست چون اگر به این نکته توجه نشه مشکلات زیادی در استفاده از داکر ایجاد میشه.

نکته ای که هست در centos 7 بصورت پیش فرض در ایجاد درایو ها پارامتر ftpye برابر 0 هست و همین مورد باعث میشه تا داکر از مدل overlay به عنوان storage driver نتونه استفاده کنه و این مورد مشکلات عجیبی ایجاد میکنه .

برای حل این مشکل از طریق روش زیر میتونید ftype رو فعال کنید و مشکل رو حل کنید.

روش انجام کار به این شکل هست که با بوت کردن یه لینوکس ابتدا یه بکاپ از درایو گرفته میشه و بعد ftype فعال میشه و بعد بکاپ برگردونده میشه. توجه داشته باشید که بصورت live امکان تغییر این پارامتر در درایو نیست.

شاید روشش یکم خشن به نظر برسه اما من چند بار امتحان کردم و جواب داده.

برای انجام این روش ابتدا باید server رو با سی دی CentOS-7-x86_64-LiveGNOME-1804.iso بوت کنید.

سپس به ترتیب دستورات زیر را در ترمینال اجرا کنید:

sudo -s

vgscan

در این مرحله باید نام volume group خودتون رو در دستور زیر بزنید.

vgchange -ay centos

lvscan

mkdir /mnt/root

mount /dev/centos/root /mnt/root

در این مرحله یه بکاپ از درایو رو به یک سرور دیگه میفرستید

xfsdump -J - /mnt/root | ssh <host> 'cat >/data/rootfs.dump'

umount /mnt/root

mkfs.xfs -f -n ftype=1 /dev/centos/root

mount /dev/centos/root /mnt/root

ssh <host> 'cat /data/rootfs.dump' | xfsrestore -J - /mnt/root

reboot

و تمام!

حالا اگر وارد سرور بشید و با دستور زیر چک کنید میبینید که پارامتر ftype فعال شده

xfs_info /

حالا باید storage driver داکر رو تغییر بدید

برای این کار این مراحل ر انجام بدید:

systemctl stop docker

cp -au /var/lib/docker /var/lib/docker.bk

Edit /etc/docker/daemon.json :

{
"storage-driver": "overlay2"
}

sudo systemctl start docker

حالا اگر docker info بگیرید میبینید که storage driver عوض شده.

***دقت کنید بعد از تغییر storage driver اگر کانتینری در درایور قبلی داشته باشید لود نمیشه و از اول باید بسازیدش***

نکته ای دیگه که هست اینه که اگر در بروزرسانی داکر مشکلی داشتید باید نسخه کرنل سرور رو هم بروزرسانی کنید

برای این کار هم پستی گذاشتم میتونید به اون مراجعه کنید.

داکرdockerstorage driveroverlay
شاید از این پست‌ها خوشتان بیاید