اشتراک گذاری دیتا بین کانتینر، داکر و هاست

آموزش اشتراک‌گذاری دیتا بین کانتینر داکر و هاست

به‌‌طورکلی، کانتینرهای داکر (Docker) مدت زیادی کار نمی‌کنند. در‌واقع، این کانتینرها حالت موقتی دارند و تا زمانی کار خواهند کرد که دستور (Command) صادرشده در کانتینر تکمیل شود. هر داده‌ای که در کانتینر ایجاد می‌شود، فقط از درون کانتینر و هنگام اجرای آن دردسترس خواهد بود. در این مقاله، قصد داریم نحوه اشتراک‌گذاری دیتا بین کانتینر داکر و هاست را به شما آموزش دهیم.

اشتراک‌گذاری دیتا بین کانتینر داکر و هاست

از حجم‌های Docker می‌توان برای اشتراک‌گذاری فایل‎ها بین سیستم هاست و کانتینر داکر استفاده کرد. برای مثال، در‌صورتی‌که قصد دارید از تصویر رسمی Docker Nginx استفاده کنید و یک کپی دائمی از فایل‌های گزارش Nginx را برای آنالیز نزد خود نگه دارید، به‌صورت پیش‌فرض تصویر Nginx Docker به پوشه var/log/nginx و کانتینر Docker Nginx خواهد رفت.

اطلاعات بین هاست، کانتینر و داکر

چطور کانتینر، داکر و هاست را به هم وصل کنیم؟

پیش‌نیازها

برای انجام این کار، به سرور اوبونتو 18.04 نیاز دارید که این پیش‌نیازها را داشته باشد:

  1. یک User غیر root با امتیازات sudo که از راهنمای نصب اولیه سرور با اوبونتو پیروی می‌کند.
  2. یک داکر با دستورالعمل‌های مرحله اول و دوم که در‌ادامه گفته می‌شود و استفاده از آن در اوبونتو.

توجه: حتماً توجه کنید که حتی اگر پیش‌نیازها دستورالعمل‌هایی برای نصب داکر در اوبونتو 18.04 ارائه می‌دهند، دستورهای Docker برای حجم داده‌ها باید تا زمانی که داکر نصب شده است، روی سایر سیستم‌عامل‌ها کار کند.

مرحله ۱. Bindmounting a Volume

دستور زیر دایرکتوری‌ای به نام nginxlogs در فهرست اصلی یوزر فعلی شما ایجاد و آن را به /var/log/nginx در کانتینر منتقل می‌کند:

$ docker run --name=nginx -d -v ~/nginxlogs:/var/log/nginx -p 5000:80 nginx

اکنون قصد داریم این دستور را دقیق بررسی کنیم:

  • --name=nginx کانتینر را نام‌گذاری می‌کند تا بتوانیم راحت‌تر به آن مراجعه کنیم.
  • -d مسئول اجرای فرایند است و آن را در پس‌زمینه اجرا می‌کند؛ در‌غیر‌این‌صورت، فقط اعلان خالی Nginx را تماشا می‌کنیم. دقت کنید تا زمانی که Nginx را نکِشیم، نمی‌توانیم از این Terminal استفاده کنیم.
  • -v ~/nginxlogs:/var/log/nginx حجم Bindmount را تنظیم می‌کند و پوشه /var/log/nginx را از درون کانتینر Nginx به دایرکتوری ~/nginxlogs در ماشین میزبان متصل خواهد کرد.
  • داکر از : برای جداکردن مسیر میزبان از مسیر کانتینر استفاده می‌کند و مسیر میزبان همیشه پیش از مسیر کانتینر می‌آید.
  • -p 5000:80 هم پورت رو به جلو (Port Forward) را تنظیم می‌کند. کانتینر Nginx به‌صورت پیش‌فرض پورت 80 را فراخوانی خواهد کرد. این Flag پورت 80 کانتینر را به پورت 5000 در سیستم هاست ترسیم می‌کند.
  • nginx مشخص می‌کند کانتینر باید از تصویر Nginx ساخته شود که دستور nginx -g "daemon off" را برای استارت یا شروع Nginx صادر خواهد کرد.
ارتباط کانتینر ابری و داکر و هاست

دستورات داکر در اوبونتو 18.04

توجه: پرچم یا flag -v بسیار انعطاف‌پذیر است. همین امر باعث می‌شود که بتوانید با تغییری جزئی در تنظیمات، Volume را نام‌گذاری یا Bindmount کنید.

در‌صورتی‌که آرگومان (Argument) اول با / یا ~/ شروع شود، شما Bindmount ایجاد می‌کنید.

-v /path:/path/in/container هاست دایرکتوری را نصب می‌کند؛ /path در /path/in/container

-v path:/path/in/container هم یک Volume به نام path بدون ارتباط با هاست ایجاد می‌کند.

مرحله ۲. دسترسی به داده‌ها در هاست

اکنون یک کپی از Nginx داریم که در کانتینر داکر در ماشین یا هاست خود اجرا می‌شود و پورت 5000 ماشین میزبان ما مستقیماً در آن کپی از پورت 80 Nginx نگاشته می‌شود.

در مرورگر وب مدنظرتان، آدرس را با استفاده از IP یا نام هاست سرور خود و شماره پورت که http://your_server_ip:5000 است، Load کنید.

اشتراک دیتا بین کانتینر داکر و هاست

ایجاد کانتینر nginx 

جالب است بدانید اگر به فهرست ~/nginxlogs در هاست نگاهی بیندازید، access.log را خواهید دید که کانتینر nginx ایجاد کرده است. این نشان‌دهنده درخواست شما خواهد بود:

$ cat ~/nginxlogs/access.log

این دستور باید چیزی شبیه به خطوط زیر باشد:

Output

203.0.113.0 - - [11/Jul/2018:00:59:11 +0000] "GET / HTTP/1.1" 200 612 "-"
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" "-"

اگر تغییری در پوشه ~/nginxlogs ایجاد کنید، می‌توانید آن‌ها را از درون کانتینر Docker ببینید.

جمع‌بندی

در این مقاله، نحوه اشتراک‌گذاری دیتا بین کانتینر، داکر و هاست را به شما آموزش دادیم. با استفاده از این آموزش، به‌راحتی می‌توانید یک حجم داده Docker را برای اشتراک‌گذاری اطلاعات بین کانتینر و سیستم فایل میزبان ایجاد کنید.

سؤالات متداول

1. کانتینرهای داکر تا چه زمانی کار می‌کنند؟

کانتینرهای داکر حالت موقتی دارند و تا زمانی کار خواهند کرد که فرمان‌ صادرشده در کانتینر تکمیل شود.

2. چگونه می‌توانیم فایل‌ها را بین سیستم هاست و کانتینر داکر به‌اشتراک بگذاریم؟

از حجم‌های Docker می‌توانید برای اشتراک‌گذاری فایل‎‌ها بین سیستم هاست و کانتینر داکر استفاده کنید.

3. استفاده از این روش برای اشتراک‌گذاری فایل‌ها بین سیستم هاست و کانتینر داکر به چه ابزاری نیاز دارد؟

به سرور اوبونتو 18.04

  • با خدمات ابری پارس آشنا شوید

    اولین ارائه‌دهنده خدمات رایانش ابری در ایران هستیم

    ابر سرور

    ابر سرور

    با ابرسرورها می‌توانید سرور با سیستم‌عامل دلخواه خود را در چند دقیقه انتخاب و نصب نموده و آزادانه منابع سخت‌افزاری که در نظر دارید را، در زمان دلخواه به سرور خود بیافزایید و تنها برای منابع مورد نیاز سرور، هزینه پرداخت نمایید.

    هایبرید سرور

    هایبرید سرور

    هایبرید سرورها نسل جدید و پیشرفته سرورهای اختصاصی هستند که با پنل قدرتمند ابری ارائه می‌شوند. در هایبرید سرورها علاوه بر ارائه سخت‌افزار مستقل، امکانات سخت‌افزاری ویژه‌ای نیز در نظر گرفته شده است.

    ماکرو سرور

    ماکرو سرور

    ماکرو سرور محصولی ویژه است که برای دریافت بالاترین کیفیت سخت‌افزاری طراحی شده است. در شرایطی که نیازمند سخت‌افزاری قدرتمند برای سرور خود هستید، ماکرو سرورها منابع سخت‌افزاری مورد نیاز را برای شما فراهم می‌کنند.

    هاست ابری

    هاست ابری

    در هاست ابری برخلاف یک هاست اشتراکی، سایت‌های پر بازدید نیز بسادگی می‌توانند از خدمات میزبانی استفاده کنند، بدون آنکه درگیر دغدغه‌های مدیریت سرور شوند. همواره تنها برای آن میزان از منابع سخت‌افزاری که نیاز دارید هزینه می‌پردازید و دیگر نیازی به پرداخت هزینه‌های غیر موجه، در ابتدای فعالیت وب سایت خود، نخواهید داشت.

    هاست دانلود

    هاست دانلود

    سیاری از مدیران سایت‌های دانلود و یا سایت‌هایی که با ترافیک بالایی برای به اشتراک‌گذاری فایل‌های خود روبرو هستند، عمدتا با مشکلاتی مانند هزینه‌های گزاف زیرساختی و یا مصرف بالای منابع سخت‌افزاری روبرو می‌شوند. از همین رو پارس‌پک با معرفی فضای هاست دانلود برای این دسته از کاربران، محصول مناسبی را پیش‌بینی نموده است.

    مطالعه این مطالب نیز پیشنهاد می‌شود

    مقالات و نظرات اعضای تیم ما درباره تکنولوژی، روزهای کاری و چیزای دیگر…

  • کلیه حقوق برای پارس پک محفوظ می باشد.

    Copyright © 2022 ParsPack Cloud Computing Technology ® , All Rights Reserved.