Volume ها در داکر
نتورک داکر در سالهای اخیر توانسته است توجه برنامهنویسان زیادی را به خود جلب کند. این شبیهسازی لایهی اپلیکیشن شبکه بهعنوان جایگزینی سبکتر برای ماشین مجازی (Virtual Machine) به بازار معرفی شد و عملکرد موفقیت آمیزی از لحاظ جلب رضایت مهندسان نرمافزار داشت. با نتورک داکر برنامهنویسی تیمی بهمراتب راحتتر میشود. اما استفاده از آن چالشهای مخصوصبهخود را هم دارد. برای مثال اطلاعات مهمترین سرمایه شرکتهای دیجیتال بوده و حفاظت از آنها بسیار مهم است. داکر بهصورت پیشفرض اطلاعات را در لایهای ذخیره میکند که با از بین رفتن حامل کد (کانتینر) از بین خواهد رفت. در چنین شرایطی نیاز ویژهای برای ذخیره کردن اطلاعات روی یک فضای امن حس میشود. یکی از راههای رفع این نیاز استفاده از Volume ها در داکر است که در ادامه آن را بهطور کامل توضیح خواهیم داد.
مدیریت اطلاعات در داکر و روش های مختلف آن
زمانی که شما از یک داکر استفاده میکنید، تمام فایلهای ایجاد شده در یک لایه read-write ذخیره میشوند. این لایه به شما امکان نوشتن و خواندن را میدهد اما فقط تا زمانی که کانتینر وجود داشته باشد. اگر کانتینر به هردلیلی از بین برود، اطلاعات شما هم از بین خواهند رفت. گاهی هم اطلاعات موجود در یک کانتینر برای راهاندازی فرآیندی در یک کانتینر دیگر لازم است. در این موارد نیاز داریم که یک کپی از اطلاعاتمان داشتهباشیم. اینجا است که داکر روشهایی را برای تهیه نسخه پشتیبان از فایلها پیشروی شما قرار میدهد.
دو گزینهی اصلی که توسط داکر برای ذخیره فایلها روی هاست ارائه میشوند، volumeها و bind mountها هستند. برای کسانی که از سیستمعامل لینوکس استفاده میکنند، یک روش دیگر با نام tmpfs mount هم وجود دارد. اگر داکر را روی ویندوز اجرا کردهاید، روش سوم برای شما named pipe نام دارد. در شکل زیر تفاوت این سه روش در ذخیرهسازی فایل روی هاست را مشاهده میکنید:
انواع روش های ذخیره اطلاعات در هاست
- Volumeها اطلاعات را در بخشی با نام «منطقه داکر» (Docker Area) ذخیرهسازی میکنند. دلیل نامگذاری این بخش مدیریت شدن آن توسط داکر است. بهعبارتدیگر، فرآیندهای خارج از داکر اجازه دسترسی به فایلهای این بخش را ندارند. Volume بهترین راه ذخیره و نگهداری اطلاعات در داکر بهحساب میآید.
- Bind Mountها ممکن است روی هر قسمتی از هاست ذخیره شوند. مسیر ذخیرهسازی آنها ممکن است مسیرهای مهم سیستم باشد. فرآیندهای خارج از داکر که روی هاست داکر انجام میشوند و همچنین کانتینرهای دیگر میتوانند در فایلهای ذخیره شده توسط Bind Mount در هر زمان تغییر ایجاد کنند.
- tmpfs Mountها روی حافظه فیزیکی کامپیوتر میزبان ذخیره میشوند. tmpfs هیچگاه در مسیرهای مهم کامپیوتر ذخیره نخواهند شد.
کاربرد Volume ها در داکر
توسعهدهندگان داکر از Volumeها بهعنوان بهترین روش ذخیره و محافظت از اطلاعات داکر یاد میکنند. تفاوت volume با روشهای دیگر مثل bind mounts و tmpfs در وابسته نبودن volume به سیستمعامل است. Volumeها در بخشی از هاست ذخیره میشوند که مستقیما توسط خود نتورک داکر اداره میشود. از جمله مزایای کلیدی استفاده از Volume ها میتوان به موارد زیر اشاره کرد:
- خیلی ساده میتوان از Volumeها بکاپ گرفت و آنها را به سیستم دیگری منتقل کرد.
- شما از طریق کدنویسی یا استفاده از وبسرویس داکر میتوانید Volumeها را مدیریت کنید.
- Volumeها روی هر دو سیستم عامل لینوکس و ویندوز بدون مشکل کار میکنند (محدود به سیستمعامل نیستند).
- Volumeها در زمان به اشتراک گذاشته شدن میان چند کانتینر، امنیت بالاتری را ارائه میدهند.
- درایورهای Volume به شما اجازه ذخیره Volumeها روی هاستهای از راه دور یا سرویسهای ابری را برای رمزنگاری محتوای آنها (یا اضافه کردن کاربردهای دیگر) میدهند.
- میتوان فضای Volumeهای جدید را برای یک کانتینر از قبل رزرو کرد.
- سرعت عملکرد سیستم با استفاده از Volumeها به مراتب بیشتر از زمانی است که Bind mount ها یا روشهای دیگر به کار گرفته میشوند.
- استفاده از Volumeها باعث افزایش اندازه کانتینر نمیشود چون که آنها خارج از چرخه حیات کانتینر وجود دارند.