آموزش داکر (بخش دوم) — از صفر تا صد
در بخش قبلی این راهنما به بررسی چشمانداز مفهومی کانتینرهای داکر پرداختیم. همچنین دلایل اهمیت کانتینرهای داکر را توضیح داده و چند روش برای تفکر در مورد آنها معرفی کردیم. در این بخش از آموزش کاربردی داکر به توضیح برخی از اصطلاحهای اکوسیستم داکر که باید با آنها آشنا باشید خواهیم پرداخت. همچنین در نوشته «داکر چیست» نیز به معرفی جامع داکر و ارائه راهنمایی برای شروع به کار با آن پرداخته شده است. ما در این نوشته اصطلاحهای داکر را برای ایجاد آسانتر مدل ذهنی به دو بخش تقسیم کردهایم که شامل موارد مقدماتی و موارد پیشرفته میشود.
یک مقاله آموزشی جامع دیگر نیز برای آموزش داکر در مجله فرادرس منتشر شده است که مطالعه آن به علاقهمندان پیشنهاد میشود:
اصطلاحات مقدماتی داکر
ابتدا و در ادامه این مطلب موارد یا همان اصطلاحات مقدماتی را بررسی میکنیم.
پلتفرم داکر (Docker Platform)
پلتفرم داکر یک نرمافزار داکر است که امکان اجرای اپلیکیشن در یک کانتینر روی هر سرور لینوکس را میدهد. پلتفرم داکر فایلهای کد و وابستگی را بستهبندی میکند. این پلتفرم از طریق ایجاد قابلیتهای انتقالپذیری (portability) و بازتولیدپذیری (reproducibility) امکان مقیاسبندی آسان را فراهم ساخته است.
موتور داکر (Docker Engine)
موتور داکر یک اپلیکیشن سرور-کلاینت است. شرکت داکر موتور داکر را به دو محصول تقسیم کرده است. یکی از آنها «نسخه جامعه داکر» (Docker Community Edition) یا به اختصار CE است که رایگان بوده و به طور عمده بر مبنای ابزارهای اوپنسورس بنا شده است. شما به احتمال زیاد از این نسخه استفاده میکنید. یک نسخه دیگر که «داکر سازمانی» (Docker Enterprise) است به همراه پشتیبانی، مدیریت و ویژگیهای امنیتی بیشتر عرضه میشود. نسخه سازمانی موجب میشود که شرکت داکر بتواند هزینههای تداوم کار خود را تأمین کند.
«کلاینت داکر» (Docker Client) روش ابتدایی تعامل با داکر محسوب میشود. زمانی که از «رابط خط فرمان داکر» (CLI) استفاده میکنید باید دستورات مورد نظر را که با Docker آغاز میشوند در ترمینال وارد کنید. در این حالت کلاینت داکر از API داکر برای ارسال دستور به Daemon داکر کمک میگیرد.
Daemon داکر
Daemon در واقع سرور داکر است که منتظر شنیدن درخواستهای API داکر میماند. Daemon داکر به مدیریت ایمیجها، کانینترها، شبکهها و volume-ها میپردازد.
Volume-های داکر
والیومهای داکر بهترین روش برای ذخیرهسازی دادههای دائمی است که اپلیکیشنها مصرف و ایجاد میکنند. در بخش پنجم از این سری مطالب راهنمای داکر در مورد والیومهای داکر بیشتر صحبت خواهیم کرد.
رجیستری داکر (Docker Registry)
رجیستری داکر مکان ریموتی است که ایمیجهای داکر در آن ذخیره میشوند. ما تصاویر را به یک رجیستری میفرستیم و همچنین تصاویر را از یک رجیستری دریافت میکنیم. شما میتوانید رجیستری خاص خود را میزبانی کنید و یا از یک رجیستری ارائه شده استفاده کنید. برای نمونه AWS و Google Cloud هر کدام رجیسترهای های خاص خود را دارند.
هاب داکر (Docker Hub)
هاب داکر بزرگترین رجیستری ایمیجهای داکر است. ضمناً رجیستری پیشفرض داکر نیز محسوب میشود. میتوان ایمیجها را در آن جستجو کرده و یا ایمیجهای شخصی را روی هاب داکر به صورت رایگان ذخیره کرد.
ریپازیتوری داکر (Docker Repository)
به مجموعهای از ایمیجهای داکر که دارای نام یکسان و تگهای متفاوت باشند گفته میشود. منظور از تگ، شناسه ایمیجها است. به طور معمول ریپازیتوری نسخههای مختلفی از ایمیجهای یکسان هستند. برای نمونه Python نام یکی از ریپازیتوریهای رسمی بسیار محبوب ایمیج داکر روی هاب داکر است. Python:3.7-slim اشاره به نسخه ایمیج با تگ 3.7-slim در ریپازیتوری پایتون دارد. شما میتواند ریپازیتوری یا یک ایمیج منفرد را به یک رجیستری Push کنید.
اصطلاحات پیشرفتهتر داکر
در ادامه به توضیح برخی از اصطلاحهای پیشرفتهتر داکر که جهت مقیاسبندی چندین کانتینر داکر مورد نیاز هستند میپردازیم.
شبکهبندی داکر (Docker Networking)
شبکهبندی امکان اتصال کانتینرهای داکر به همدیگر را فراهم میسازد. کانتینرهای متصل به هم داکر میتوانند روی یک یا چندین میزبان باشند. برای کسب اطلاعات بیشتر در این مورد میتوانید به مطلب «شبکهبندی و ارتباطها در اکوسیستم داکر — راهنمای جامع» مراجعه کنید.
داکر کامپوز (Docker Compose)
این یک ابزار جهت تسهیل اجرای اپلیکیشنهایی است که نیازمند چنین کانتینر داکر هستند. داکر کامپوز امکان انتقال دستورها به یک فایل docker-compose.yml برای استفاده مجدد را میدهد. رابط خط فرمان داکر کامپوز امکان تعامل با اپلیکیشنهای چند کانتینری را تسهیل کرده است. داکر کامپوز به صورت رایگان در زمان نصب داکر ارائه میشود.
داکر سوارم (Docker Swarm)
داکر سوارم محصولی است که توسعه کانتینر را هماهنگ میکند. راهنمای رسمی داکر از کاربران میخواهد که در فرایند توسعه خود از داکر سوارم بهره بگیرند. اما ما به شما توصیه میکنیم به جز در مواردی که دلیل قانعکنندهای برای این کار داشته باشید، از اتلاف وقتتان روی داکر سوارم اجتناب کنید. دلیل این مسئله در ادامه توضیح داده شده است.
سرویسهای داکر (Docker Services)
سرویسهای داکر یک بخش دیگر از اپلیکیشن توزیع یافته است. بر اساس توضیحاتی که در مستندات آن ارائه شده است:
سرویسها به کانتینرهای در حال اجرا گفته میشود. یک سرویس تنها یک ایمیج را اجرا میکند، اما روش اجرای آن ایمیج را کدگذاری میکند. بدین ترتیب پورتهایی که مورد استفاده قرار میگیرند، تعداد replica-هایی که کانتینر باید اجرا کند، ظرفیت مورد نیاز سرویس و موارد دیگر تعیین میشوند. مقیاسبندی یک سرویس تعداد وهلههای کانتینر که در اجرای آن نرمافزار هستند را تغییر میدهد و منابع محاسباتی بیشتری در اختیار سرویس قرار میگیرد.
سرویسهای داکر امکان مقیاسبندی کانتینرها روی چند Daemon داکر را فراهم میسازند و بدین ترتیب امکان استفاده از داکر سوارم ایجاد میشود.
اینک به پایان این بخش از راهنمای داکر رسیدهایم؛ اما هنوز اصطلاحهای داکر زیادی وجود دارند که باید بیاموزیم.
جمعبندی
در این بخش به ارائه توضیحهای یکخطی از اصطلاحهایی که در این نوشته ارائه شدهاند پرداختیم.
اصطلاحات مقدماتی
- پلتفرم: نرمافزاری که امکان ایجاد کانتینرهای داکر را فراهم میسازد.
- موتور: اپلیکیشن کلاینت-سرور (دو نسخه CE و سازمانی دارد)
- کلاینت: به مدیریت CLI داکر میپردازد تا بتوانید با Daemon ارتباط داشته باشید.
- Daemon: سرور داکر که به مدیریت مسائل کلیدی میپردازد.
- Volumes: محل ذخیره دادههای دائمی
- رجیستری: محل ذخیره ایمیج ریموت
- هاب داکر: رجیستری پیشفرض و بزرگ داکر
- ریپازیتوری: مجموعهای از ایمیجهای داکر مانند Alpine
اصطلاحات پیشرفتهتر (مقیاسبندی)
- شبکهبندی: اتصال کانتینرها به همدیگر
- کامپوز: عامل صرفهجویی زمانی برای اپلیکیشنهای چند کانتینری
- سوارم: هماهنگی توسعه کانتینر
- سرویسها: کانتینرها در مقام بهرهبرداری
اینک به پایان این راهنما رسیدهایم؛ اما یک اصطلاح مهم دیگر نیز وجود دارد که بدون معرفی آن، این راهنما ناقص خواهد بود.
Kubernetes
Kubernetes به خودکارسازی فرایند توسعه، مقیاسبندی و مدیریت اپلیکیشنهای کانتینرسازی شده میپردازد.
Kubernetes یکی از اصلیترین گزینههای هماهنگسازی کانتینرها محسوب میشود. به جای داکر سوارم میتوان از Kubernetes برای مقیاسبندی پروژههایی که چندین کانتینر داکر دارند استفاده کرد. Kubernetes بخشی رسمی از داکر نیست و بیشتر شبیه یک BFF داکر است.
سخن پایانی
اینک که با اصطلاحهای داکر آشنا شدیم، نوبت آن رسیده است که به صورت عملی از داکر استفاده کنیم. داکر به صورت محلی روی لینوکس، مک و ویندوز اجرا میشود. اگر از سیستمهای مک یا ویندوز استفاده میکنید، میتوانید جدیدترین نسخه پایدار داکر دسکتاپ را از این لینک (+) نصب کنید. بدین ترتیب Kubernetes نیز روی سیستم نصب میشود. اگر داکر را جای دیگری نصب میکنید، میتوانید با مراجعه به این لینک (+) اقدام به یافتن نسخههای مورد نیاز خود بکنید.
در بخش بعدی این سری مطالب راهنمای جامع داکر به معرفی فایلهای داکر، ایمیجهای داکر، CLI داکر و همچنین مدیریت دادهها میپردازیم. برای مطالعه این مطلب به لینک زیر مراجعه کنید:
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز پیشنهاد میشوند:
- مجموعه آموزشهای مهندسی نرم افزار
- آموزش داکر (Docker) برای توسعه دهندگان
- مجموعه آموزشهای برنامه نویسی
- اکوسیستم داکر (Docker) — کامپوننت های رایج
- شبکه بندی و ارتباط ها در اکوسیستم داکر — راهنمای جامع
- داکر چیست ؟ | راهنمای شروع به کار با Docker — رایگان و به زبان ساده
==
با سلام؛
موردی که به درستی فرمودید، در بخشهای بعدی این سری مطالب رعایت شده است.
از توجه شما متشکرم.
سلام
ابتدا ممنون بابت مقالاتی با محتوای غنی.
مورد دیگه در متن بعضی ها جاها بد ترجمه شدند.
مثلا ایمیج در متن زیر تصویر ترجمه شده.
رجیستری داکر مکان ریموتی است که ایمیجهای داکر در آن ذخیره میشوند. ما تصاویر را به یک رجیستری میفرستیم و همچنین تصاویر را از یک رجیستری دریافت میکنیم. شما میتوانید رجیستری خاص خود را میزبانی کنید و یا از یک رجیستری ارائه شده استفاده کنید. برای نمونه AWS و Google Cloud هر کدام رجیسترهای های خاص خود را دارند.
بهتره همون ایمیج بنویسید چون یک مفهوم هست و در فارسی با تصویر زیاد همخوانی ندارد.
مرسی