سه شنبه ۰۱ خرداد ۰۳

آشنایی با Volume‎‌ ها در داکر

۱۶ بازديد

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ها باعث افزایش اندازه کانتینر نمی‌شود چون که آن‌ها خارج از چرخه حیات کانتینر وجود دارند.

 

کار با Volume ها در داکر

استفاده از volume ها در داکر

در این بخش می‌خواهیم مبانی کار با Volumeها در داکر را توضیح دهیم. قبل از همه چیز لازم است دستور ایجاد Volume در داکر را یاد بگیریم:

docker volume create [OPTIONS] [VOLUME]

با این دستور یک Volume با نامی تصادفی ایجاد می‌شود. برای تعیین مشخصات باید از دستورات زیر استفاده کرد:

دستور پیش‌فرض عملکرد
--driver , -d local مشخص کردن نام درایور Volume
--label   تنظیم اطلاعات متا
--name   تعیین نام Volume
--opt , -o   تنظیمات درایور

یکی از ویژگی‌های مهم Volume این است که چند کانتینر به‌صورت همزمان می‌توانند به آن متصل باشند و بدون مشکل فایل‌ها را جابه‌جا یا ویرایش کنند. دقت داشته باشید که نام تمام Volumeها در هر درایور باید باید منحصربه‌فرد باشد. اگر این نکته را در نام‌گذاری خود در نظر نگیرید، با پیام زیر روبرو خواهید شد:

A volume named  "hello"  already exists with the "some-other" driver. Choose a different volume name

گزینه های درایور

بعضی درایورها گزینه‌هایی برای شخصی‌سازی ساخت Volume دارند. گزینه‌های درایور با دو پرچم o- و opt-- جابه‌جا می‌شوند. به مثال زیر توجه کنید:

$ docker volume create --driver fake 
    --opt tardis=blue 
    --opt timey=wimey 
    foo

این گزینه‌ها بسته به نوع درایور ممکن است تغییرات مختلفی را روی Volume اعمال کنند یا حتی هیچ‌کاری انجام ندهند.

دستورات مرتبط با Volume‎‌ ها در داکر

دستور عملکرد
docker Volume مدیریت Volume ها
docker volume create ساخت یک Volume
docker volume inspect نمایش اطلاعات جزیی درباره یک یا چند Volume
docker volume ls فهرست کردن Volume ها
docker volume prune پاک کردن تمام Volume های بلااستفاده و محلی
docker volume rm پاک کردن یک یا چند Volume

تفاوت بین پرچم‌ های v- و mount--

در زمان کدنویسی برای کار با Volumeها در داکر می‌توان از این دو پرچم استفاده کرد. با این تفاوت که پرچم v- در زمان کار با سرویس‌ها قابل استفاده نیست. در مثال زیر می‌خواهیم با استفاده از یک Volume، یک کانتینر را راه‌اندازی کنیم. این کار را یک‌بار با پرچم v-- و بار دیگر با پرچم mount-- انجام می‌دهیم.

تا كنون نظري ثبت نشده است
امکان ارسال نظر برای مطلب فوق وجود ندارد