جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره‌های آموزشی
  • وبلاگ
  • درباره ما
  • قوانین و مقررات
  • همکاری با ما
  • تماس با ما
محتوای باز
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]
  • خانه
  • کتاب آنلاین
  • درباره سایت
  • درباره لوگو
  • تماس با ما
محتوای باز
  • صفحه اصلی
  • دوره‌های آموزشی
  • وبلاگ
  • درباره ما
  • قوانین و مقررات
  • همکاری با ما
  • تماس با ما
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0
[wcas-search-form]

داکر و رایانش ابری

29 آذر 1399
ارسال شده توسط فرشید نوتاش حقیقت
طراحی وب، رایانش ابری
داکر

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

داکر چیست؟

سایت داکر، آن را «یک پروژه متن‌باز برای بسته‌بندی، انتقال و اجرای هر برنامه‌ای به صورت یک حامل (Container) سبک» معرفی می‌کند.

یکی از قابلیت‌های منحصر به سیستم‌عامل لینوکس امکان ایجاد حامل است. یک حامل، به نوعی یک مجازی‌ساز در سطح سیستم‌عامل است، به این معنی که به غیر از هسته سیستم‌عامل، همه اجزای سیستم‌عامل درون حامل از سیستم‌عامل بیرونی مستقل است.

این نوع مجازی‌سازی برخلاف مجازی‌سازی معمولی، سربار (Overhead) بسیار کمی دارد و برخلاف تکنیک chroot، دو سیستم‌عامل کاملا از هم جدا هستند و همدیگر را مثل دو ماشین مجزا در شبکه می‌بینند. تنها نقطه اشتراک دو سیستم‌عامل، هسته سیستم‌عامل (لینوکس) است که در این ترکیب، هسته سیستم‌عامل بیرونی، سیستم‌عامل داخلی را هم کنترل می‌کند.

این قابلیت سال‌هاست که در لینوکس وجود دارد و سوال اینجاست که داکر چه چیزی به این قابلیت اضافه می‌کند؟

نسخه‌های اولیه داکر، از LXC برای مدیریت حامل‌ها استفاده می‌کردند، اما از نسخه 9/0 به بعد، داکر به صورت مستقیم و با کمک کتابخانه‌هایی که LXC هم از آن ها استفاده می‌کند، مدیریت حامل‌ها را انجام می‌دهد.

آن چه داکر را از بقیه متمایز می‌کند، تکنیک «مدیریت لایه لایه فایل سیستم» و امکان Copy-on-write فایل سیستم است.

داکربا توجه به فلسفه «همه چیز فایل است» در سیستم‌های مبتنی بر یونیکس، برای انتقال یک سیستم‌عامل و حتی ذخیره کردن وضعیت برنامه‌های در حال اجرا، کافی است راهی برای مدیریت همه این فایل‌ها وجود داشته باشد.

هر حامل در داکر یک فایل‌سیستمِ کاملِ لینوکسی است که از چندین لایه تشکیل شده و هر لایه عبارت است از تغییرات فایل‌های لایه قبلی نسبت به لایه بعدی. داکر به جای نگه داشتن مجموع فایل‌های هرلایه، تنها فایل‌هایی را که از لایه قبلی تا لایه بعدی تغییر کرده‌اند، نگه‌داری می‌کند. مدیریت این لایه‌ها شبیه به سیستم‌های کنترل نسخه (بیش‌تر از همهgit ) انجام می‌شود و امکان گرفتن انشعاب، تگ کردن و برگشتن به یک لایه به‌خصوص در داکر وجود دارد.

در داکر قابلیت ایجاد یک مخزن مرکزی از این لایه‌ها وجود دارد و به این ترتیب با کمک docker-registry (که خود یک پروژه متن‌باز دیگر است) امکان انتقال این حامل‌ها به راحتی فراهم می‌شود.

هنگامی که یک نسخه از یک حامل به یک ماشین دیگر انتقال پیدا می‌کند، می‌توان تا بی‌نهایت رونوشت (بسته به منابع سخت‌افزاری آن ماشین) از آن حامل ایجاد کرد. همه حامل‌ها در ابتدا در لایه‌های فایل‌سیستم مشترک هستند اما پس از اجرا در لایه جدید به صورت مستقل خواهند بود، این اشتراک در لایه‌ها، باعث کم شدن فضای مورد استفاده می‌شود. نصب داکر بسیار ساده است. داکر (بسته به توزیع گنو/لینوکس شما که می‌توانید راهنمای آن را بخوانید) معمولا با یک یا دو دستور ساده نصب می‌شود.

حتی اگر نسخه لینوکس شما به صورت رسمی پشتیبانی نشود، با توجه به این که برای نوشتن داکر از زبان Go استفاده شده است، می‌توانید آن را کامپایل کنید که تنها با یک دستور اجرا می‌شود. اگر تمایلی به نصب و کامپایل با Go ندارید، فایل باینری آن به صورت تنها (standalone) اجرا می‌شود که نیاز به هیچ کتابخانه جانبی ندارد. شما می‌توانید به راحتی آن را از اینترنت دانلود کنید.

برای استفاده از داکر می‌توانید به این صورت عمل کنید: ابتدا سرویس داکر را اجرا کنید. بسته به توزیع گنو/لینوکس شما، طریقه اجرای سرویس متفاوت است. اما در نهایت فرمان docker -d با دسترسی کاربر ریشه، کافی است.

سپس فرمان‌های زیر را اجرا کنید:

docker pull ubuntu
docker run -ti ubunt /bin/bash

تمام شد.

شما فرمان bin/bash/ را در یک اوبونتو کاملا مستقل از سیستم خودتان اجرا کرده‌اید. اگر بیش‌تر کنکاش کنید متوجه چند نکته خواهید شد:

  • یک کارت شبکه مجازی به صورت پل (bridge) در سیستم شما به وجود آمده است که ارتباط شبکه‌ای شما با این حامل و همه حامل‌های روی یک ماشین را به عهده می‌گیرد.
  • با این که شما در اوبونتو هستید، ولی خروجی فرمان uname –a (که نسخه کرنل لینوکس شما را نشان می‌دهد) همچنان نسخه لینوکس اصلی شما را به شما نشان خواهد داد.
  • شما تنها یک نسخه اجرا شده از bash را در سیستم داخلی خواهید دید. داکر هیچ سرویس، یا برنامه دیگری را اجرا نکرده است.
  • هیچ گونه دسترسی به پروسه‌های بیرونی وجود ندارد، فایل سیستمِ بیرونی قابل دسترسی نیست (مگر این که شما قسمتی از آن را با حامل به اشتراک گذاشته باشید).
  • از بیرون، پروسه‌های داخلی در دسترس هستند. می‌توان آن‌ها را دید و حتی به آن ها سیگنال Kill فرستاد، ولی هیچ راهی از داخل به بیرون نیست.
  • برنامه‌ای مثل htop را در حامل نصب کنید و اجرا کنید. خواهید دید که کل CPU های سیستم بیرونی، کل حافظه و فضای swap بیرونی شما در اختیار حامل نیز هست، یعنی اگر چندین حامل همزمان اجرا شوند، برخلاف مجازی‌سازی که از ابتدا همه منابع مورد نیازش را از سیستم جدا خواهد کرد، حامل هر زمان که لازم داشته باشد می‌تواند به منابع بیش‌تری دسترسی پیدا کند و هر زمان که در حالت ایده‌آل باشد می‌تواند آن منابع را رها کند. البته امکان کنترل منابع برای حامل‌ها نیز وجود دارد.

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

انتقال و بسته‌بندی برنامه‌ها

اگر حتی یک بار سعی در نصب برنامه‌ها (بیش تر برنامه‌های تحت وب) کرده باشید، حتما می‌دانید که یک برنامه برای اجرا، نیاز به اجزای فراوانی دارد. از وب سرور، پایگاه‌داده، مفسر (برای زبان‌های اسکریپتی مثل پایتون یا روبی یا Node.js یا PHP) ماشین مجازی جاوا (برای زبان‌های مبتنی بر ماشین مجازی جاوا) و… دارد که نصب هر کدام زمان و انرژی زیادی می‌طلبد. حال اگر چندین بار در روز این برنامه‌ها را نصب کنید و یا این که نیاز به بروزرسانی مداوم آن ها باشد… خودتان حدس می‌زنید که چه انرژی و زمانی از شما گرفته می‌شود.

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

نصب برنامه‌ها در یک حامل از طریق یک فایل با ساختار خاص (Dockerfile) صورت می‌گیرد. در این سیستم هر برنامه بر روی یک حامل توسط یک نفر و فقط برای یک بار نصب می‌شود و هیچگونه تداخلی نیز با برنامه‌های دیگر نخواهد داشت.

بعد از ساختن این حامل‌ها می‌توان آن را به مخازن اصلی داکر، یا مخازن اختصاصی فرستاد و آن‌ها را با دیگران به اشتراک گذاشت. برای جستجو در مخزن عمومی داکر می‌توان از فرمان docker search استفاده کرد، مثلا برای دیدن حامل‌هایی که دیگران در آن redmin نصب کرده‌اند کافی است این گونه جستجو کنید:

docker search redmine

و بعد یکی از حامل‌های فهرست شده را (برمبنای نیاز خود) دریافت (pull) و اجرا کنید.

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

ابزارهای بسیاری (مثل coreOs، سایت koding.io، docker provider برای vagrant و…) نیز برمبنای داکر ایجاد شده‌اند که هر کدام، امکانات فراوانی را به کاربران می‌دهند.

برای گرفتن اطلاعات بیش‌تر می‌توانید سایت داکر را ببینید و مطالعه کنید.

منبع: نشریه «سلام دنیا» شماره صفرم – نوشته فرود غفوری
برچسب ها: Cloud ComputingDockerداکررایانش ابریمحتوای باز
درباره فرشید نوتاش حقیقت

همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرم‌افزارهای آزاد/ متن‌باز و سیستم‌عامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.

نوشته‌های بیشتر از فرشید نوتاش حقیقت
قبلی نحوه ساخت جدول HTML
بعدی R آماردان آزاد
جستجو
جستجو برای:
دسته‌بندی موضوعی مقالات
  • برنامه‌نویسی
    • پایتون
  • پایگاه‌داده
    • MariaDB
    • MySQL
  • تجارت الکترونیک
    • بازاریابی اینترنتی
    • دیجیتال مارکتینگ
    • شبکه‌های اجتماعی
  • جامعه کاربری
    • لاگ
  • دسته‌بندی نشده
  • شبکه و امنیت
  • طراحی وب
    • سئو
    • سیستم مدیریت محتوا
      • وردپرس
  • فناوری‌های نوظهور
    • اینترنت اشیاء
    • رایانش ابری
      • OpenStack
    • کلان‌داده‌ها
  • گنو/لینوکس
    • توزیع
      • CentOS
      • اوبونتو
      • دبیان
      • فدورا
    • چیست
    • خط فرمان
  • مهاجرت به آزاد/متن‌باز
  • نرم‌افزار
    • اداری
      • لیبره آفیس
        • ایمپرس
        • بیس
        • دراو
        • رایتر
        • کالک
    • کاربردی
    • گرافیک و انیمیشن
      • بلندر
      • گیمپ
نماد الکترونیکی (اینماد)
پرداخت‌یار

محتوای باز؛ مرجع آموزشی نرم‌افزارهای آزاد/ متن‌باز

از اینکه قصد همکاری با رسانه «محتوای باز» را دارید بسیار خرسندیم و این مایه مباهات ماست.

نحوه همکاری با ما چندان پیچیده نیست و شرایط آن در ادامه، ارائه گردیده است.

دستمزد مدرسین

پیش از بیان شرایط ضبط ویدئو شایان ذکر است اشاره‌ای به دستمزد مدرسین سایت داشته باشیم.

شما ممکن است در دو حالت تمایل به نشر ویدئو خود را داشته باشید: یا آن را رایگان در اختیار عموم قرار دهید و یا اینکه در قبال فروش آن از خریدار وجه مربوطه محصول را اخذ نمایید.

صرف نظر از هر حالت ممکنه، می‌بایست شرایطی که در ادامه ذکر شده‌اند را رعایت کرده باشید.

در حالت اول (رایگان) رسانه محتوای باز (Open Content)، نه وجهی از شما برای نشر ویدئو می‌گیرد و نه وجهی به شما پرداخت می‌نماید و دوره آموزشی شما را به رایگان منتشر می‌کند.

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

شرایط کلی ضبط دوره آموزشی

دوره آموزشی مربوطه، صرف نظر از هر محتوایی که دارد می‌بایست در یکی از توزیعات گنو/لینوکسی ضبط شده باشد. (به‌عنوان مثال دوره دروپال در اوبونتو، دوره آموزشی کار با آردوینو در دبیان و امثالهم). اگر دوره آموزشی شما در محیط ویندوز و یا هر پلتفرم/سیستم‌عامل دیگری ضبط شده باشد از همکاری با شما معذوریم.

پیشنهاد می‌گردد برای ضبط دوره آموزشی در توزیع گنو/لینوکس از ابزار قدرتمند OBS استفاده نمایید. البته این صرفا یک پیشنهاد است و شما می‌توانید از هر ابزار مناسب دیگری برای این کار بهره ببرید.

برای آشنایی یا تسلط بیشتر می‌توانید دوره رایگان آموزش OBS محمد عابدینی را ببینید:

مشاهده دوره آموزش OBS
شرایط کیفی ضبط دوره آموزشی

کیفیت صدا از اهمیت ویژه‌ای برخوردار می‌باشد و می‌بایست فاقد هر گونه نویز یا صدای اضافی دیگری (صدای محیط پیرامون) باشد.

دوره آموزشی تهیه شده صرفا باید برای رسانه محتوای باز تدوین شده باشد و در هیچ سایت مشابه دیگری قرار نگرفته باشد.

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

دوره آموزشی ضبط شده می‌باید فاقد هر گونه لوگو یا آدرس سایت دیگری (در گوشه تصویر یا بک‌گراند صفحه دسکتاپ و هر جای دیگری) باشد.

در حین دوره، مدرس نباید به برند خاصی اشاره کند که جز رقبای ما به‌شمار می‌آیند.

مدرس باید در ابتدا در اواسط و در انتهای دوره به برند ما یعنی رسانه محتوای باز (Open Content) بصورت کلامی اشاره نماید.

مدرس، هنگام تدریس نباید تپق زده، سرفه یا عطسه کند یا صدای قورت دادن بزاقش شنیده شود و بایستی با صدای رسا، دوستانه و پرانرژی به تدریس بپردازد.

قبل از تدوین دوره آموزشی حتما با ما در تماس باشید و یک ویدیوی چنددقیقه‌ای (ترجیحا 5 الی 10 دقیقه)، بصورت نمونه‌کار برای ما بفرستید.

از همکاری با شما سپاسگزاریم.

فراخوان همکاری