در این آموزش قراره بررسی کنیم که یک داکر کانتینر چقدر دیسک استفاده میکند ؟

در حل این سوال ما ابزار مانیتور کردن کانتینر نداریم و با استفاده از خود کامند های متداول داکر برای پاسخ به این موضوع استفاده میکنیم .
با استفاده از کامند زیر می توانید اندازه استفاده شده توسط هر کانتینر را مشاهده کنید :
docker ps -s (--size , -sDisplay total file sizes)
خروجی دستور بالا به شکل زیر میباشد :

در بخش سايز ما دو عدد 2B و virtual 183MB مشاهده می کنیم .
لایه غیر قابل تغییر چیه؟
این لایه را داکر امیج پایه این کانتینر تشکیل میده که قابل تغیر نیست . مثلا اگر داکر ایمیج شما 183MB باشد یک بار این فضا در زمان اجرای اولین کانتینر استفاده میشود و این به این معناست که اگر با ده تا کانتینر nginx داشته باشیم که از یک داکر ایمیج مشابه استفاده میکند تنها یک بار 183MB استفاده میشود و برای همه کانتینر ها استفاده میشود .
مثال شماره ۱ : در عکس بالا مشاهده می کنید که ما دوتا کانتینر nginx داریم بنابرین حجم استفاده شده این دو کانتینر برابر است با 183MB + 5B + 2B
فضاهای مورد استفاده کانتینر که در این کامند شامل نمی شود:
اگر اطلاعات کامل تری نسبت به کامند قبل نیاز دارید از کامند زیر استفاده کنید
docker system df --verbose
اطلاعاتی که این دستور به شما می دهد :
یک bash script کوچک هم براتون قرار دادم که کارتون رو ساده میکنه و میاد هر کانتینر رو مجزا بررسی می کنه و حجم کانتینر رو حجم volumes استفاده شده و ادرس اون رو هم بهتون میده که امیدوارم بدرتون بخوره
for d in `docker ps | awk '{print $1}' | tail -n +2`; do d_name=`docker inspect -f {{.Name}} $d` echo "=========================================================" echo "$d_name ($d) container size:" sudo du -d 2 -h /var/lib/docker/aufs | grep `docker inspect -f "{{.Id}}" $d` echo "$d_name ($d) volumes:" for mount in `docker inspect -f "{{range .Mounts}} {{.Source}}:{{.Destination}} {{end}}" $d`; do size=`echo $mount | cut -d':' -f1 | sudo xargs du -d 0 -h` mnt=`echo $mount | cut -d':' -f2` echo "$size mounted on $mnt" done done
خروجی دستور زیر اینگونه است :
/safa_php (9c234f4aabaa) container size:113M /safa_php (9c234f4aabaa) volumes: 112M /home/safa/demo/code mounted on /var/www/html