tgoop.com/dotnetcode/3033
Last Update:
بیا با هم دنیای باحال داکر رو کشف کنیم! 🐳
اوکی، این عکس رو دیدی؟ انگار یه نقشه گنجه، نه؟ ولی گنجش برنامههای خفن و بدون دردسریه که با "داکر" میسازیم و اجرا میکنیم. داکر مثل یه جعبهابزار جادوییه که به برنامهنویسها کمک میکنه برنامههاشون رو راحتتر بسازن، هرجا دلشون خواست ببرن و بدون مشکل اجرا کنن. بیا ببینیم این جعبهابزار هر کدوم کارش چیه:
۱. تو و داکر (Client): فرمانده کیه؟ خودتی!
کارش چیه؟ این همون ابزاریه که تو باهاش به داکر دستور میدی. مثلاً وقتی تو ترمینال مینویسی docker run
یا docker build
، یا از اون برنامههای خوشگل گرافیکی استفاده میکنی، داری از "کلاینت داکر" استفاده میکنی تا با مغز متفکر داکر حرف بزنی.
۲. مغز متفکر داکر (Daemon): اون غول چراغ جادو!
کارش چیه؟ این یه برنامه خستگیناپذیره که پشت صحنه همیشه حواسش به همه چی هست. تو بهش دستور میدی (از طریق کلاینت)، اونم کارای سخت رو انجام میده؛ مثل ساختن "ایمیج"، راه انداختن "کانتینر"، مدیریت شبکهها و حافظهها. خلاصه، کار اصلی رو این انجام میده.
۳. خونه داکر (Host): مهمونی همینجاست!
کارش چیه؟ این همون کامپیوتر یا سروریه که "دیمن داکر" روش نصب شده و داره کار میکنه. منابع سیستم (مثل CPU، رم، حافظه) رو در اختیار داکر قرار میده تا بتونه کانتینرها رو اجرا کنه. میتونه لپتاپ خودت باشه یا یه سرور گنده تو شرکت.
۴. انبار بزرگ ایمیجها (Registry): مثل یه کتابخونه پر از دستور پخت!
کارش چیه؟ یه مخزن آنلاین یا محلیه که "ایمیج"های داکر توش نگهداری میشن. معروفترینش "داکر هاب" (Docker Hub) هست. کارش اینه که ایمیجها رو ذخیره کنه تا تو یا بقیه بتونین اونها رو دانلود کنین (pull) و استفاده کنین، یا ایمیجهایی که خودتون ساختین رو توش آپلود کنین (push) تا بقیه هم استفاده کنن.
۵. دستور پخت برنامه (Image): نقشه راه!
کارش چیه؟ یه قالب آماده و فقط خوندنیه که تمام دستورالعملها، کدها، کتابخونهها و تنظیمات لازم برای اجرای یه برنامه رو تو خودش داره. کارش اینه که به عنوان یه الگو برای ساخت "کانتینر" استفاده بشه. هر وقت بخوای یه برنامه رو تو داکر اجرا کنی، از روی ایمیجش یه کانتینر میسازی.
۶. برنامه آماده به کار (Container): خودِ خودِ برنامه در حال اجرا!
کارش چیه؟ این یه نمونه در حال اجرای یه "ایمیج" هست. کارش اینه که برنامه تو رو توی یه محیط ایزوله و جدا از بقیه سیستم اجرا کنه. انگار برنامه رو گذاشتی تو یه جعبه مخصوص خودش که نه اون روی بقیه تأثیر میذاره، نه بقیه روی اون. اینطوری برنامهات همه جا یکسان اجرا میشه.
۷. دفترچه دستور پخت (Dockerfile): خودت آشپز شو!
کارش چیه؟ یه فایل متنیه که توش قدم به قدم مینویسی چطوری یه "ایمیج" داکر باید ساخته بشه. کارش اینه که فرآیند ساخت ایمیج رو اتوماتیک کنه. تو بهش میگی از چه ایمیج پایهای استفاده کن، چه فایلهایی رو کپی کن، چه دستوراتی رو اجرا کن و... داکر هم طبق همین دستورالعمل، ایمیجت رو میسازه.
یه کوچولو کد (مفهومی):
# پایه کارمون چیه؟ مثلا یه نسخه سبک از لینوکس با نود جیاس
FROM node:18-alpine
# فایلای برنامهام رو بریز توش
COPY . .
# برنامهام با این دستور شروع به کار میکنه
CMD ["node", "app.js"]
۸. سیمهای ارتباطی (Network): چطوری با هم حرف بزنن؟
کارش چیه؟ داکر برای کانتینرهات شبکههای مجازی درست میکنه. کار این شبکهها اینه که به کانتینرها اجازه بدن با همدیگه ارتباط برقرار کنن، یا به شبکه میزبان (و از طریق اون به اینترنت) وصل بشن. بدون اینا، کانتینرهات مثل جزیرههای دورافتاده میشن!
۹. گاوصندوق اطلاعات (Volume): اطلاعاتت رو اینجا امن نگه دار!
کارش چیه؟ وقتی یه کانتینر پاک میشه، اطلاعات توش هم معمولاً از بین میره. "والیوم" یه راه حله که اطلاعات مهم برنامه (مثل دیتابیس یا فایلهای کاربرا) رو به صورت پایدار و جدا از خود کانتینر ذخیره کنی. کارش اینه که حتی اگه کانتینر رو پاک کردی و دوباره ساختی، اطلاعاتت سر جاش بمونه.
۱۰. ابزارهای کمکی (Plugins): داکرت رو خفنتر کن!
کارش چیه؟ اینا یه سری افزونه هستن که میتونی به داکر اضافه کنی تا قابلیتها و امکاناتش بیشتر بشه. مثلاً پلاگینهایی برای مدیریت بهتر شبکه، ذخیرهسازی پیشرفتهتر، یا امنیت بیشتر. کارشون اینه که داکر رو برای نیازهای خاص تو، توسعه بدن.
📚💻 @dotnetcode