داکر (docker) چیه و چه کاربردی داره؟ 🐳
داکر یک پلتفرم نرمافزاریه با امنیت بالا هست که از طریق اون میتونین توسعه تست و اجرای نرم افزارهای مختلف رو با سرعت بالایی انجام بدید.
داکر نرمافزارهارو داخل یونیتهای استانداردی به اسم کانتینر قرار میده. کانتینرها تمامی مواردی که برای اجرای نرمافزار به اونها نیاز دارین مثل لایبرریهای مختلف، ابزارهای سیستم، کدها و رانتایمهای مختلف رو در اختیارتون قرار میده. با استفاده از داکر میتونین نرم افزار خودتونو به سرعت در هر محیطی اجرا کنید و مطمئن باشین که کد شما اجرا میشه.
داکر چجوری کار میکنه ؟
داکر براساس معماری کلاینت-سرور کار میکنه. این سرویس شامل کلاینت ، میزبان و رجیستری داکره. کلاینت برای اجرای دستورات مختلف کاربرد داره و هاست نیز وظیفه اجرای Daemon رو برعهده داره. در رجیستری نیز Imageهای داکر نگهداری میشن. کلاینت داکر از طریق REST API با daemon ارتباط برقرار میکنه و از این طریق میتونین کانتینرهای داکر رو ایجاد، اجرا و توزیع کنید. هم کلاینت و هم daemon رو میتونین روی یک سرور اجرا کنین و یا به صورت ریموت اونها رو روی دو سرور مجزا اجرا کنین.
داکر چه کاربرد هایی داره؟
1️⃣ توسعه سریع و پایدار نرمافزارهای مختلف
2️⃣ اجرا و مقیاسبندی واکنشگرا
3️⃣ اجرای حجم کاری بیشتر روی سیستم
4️⃣ استفاده از دیتابیسهای زودگذر
5️⃣ ابزارهای یکبار مصرف
6️⃣ اجرای کامل دستههای نرمافزاری
یادگیری داکر برای تمامی حوزه های توسعه نرم افزار (فرانت اند ، بک اند و ....) کم کم تبدیل به امری ضروری داره میشه، جدا از محدودیت هایی که ما توی ایران برای استفاده ازش داریم. پس حتما به داکیومنت این پلتفرم خفن سر بزنین.
Document🌐
#docker #software #platform
@CodeModule
داکر یک پلتفرم نرمافزاریه با امنیت بالا هست که از طریق اون میتونین توسعه تست و اجرای نرم افزارهای مختلف رو با سرعت بالایی انجام بدید.
داکر نرمافزارهارو داخل یونیتهای استانداردی به اسم کانتینر قرار میده. کانتینرها تمامی مواردی که برای اجرای نرمافزار به اونها نیاز دارین مثل لایبرریهای مختلف، ابزارهای سیستم، کدها و رانتایمهای مختلف رو در اختیارتون قرار میده. با استفاده از داکر میتونین نرم افزار خودتونو به سرعت در هر محیطی اجرا کنید و مطمئن باشین که کد شما اجرا میشه.
داکر چجوری کار میکنه ؟
داکر براساس معماری کلاینت-سرور کار میکنه. این سرویس شامل کلاینت ، میزبان و رجیستری داکره. کلاینت برای اجرای دستورات مختلف کاربرد داره و هاست نیز وظیفه اجرای Daemon رو برعهده داره. در رجیستری نیز Imageهای داکر نگهداری میشن. کلاینت داکر از طریق REST API با daemon ارتباط برقرار میکنه و از این طریق میتونین کانتینرهای داکر رو ایجاد، اجرا و توزیع کنید. هم کلاینت و هم daemon رو میتونین روی یک سرور اجرا کنین و یا به صورت ریموت اونها رو روی دو سرور مجزا اجرا کنین.
داکر چه کاربرد هایی داره؟
یادگیری داکر برای تمامی حوزه های توسعه نرم افزار (فرانت اند ، بک اند و ....) کم کم تبدیل به امری ضروری داره میشه، جدا از محدودیت هایی که ما توی ایران برای استفاده ازش داریم. پس حتما به داکیومنت این پلتفرم خفن سر بزنین.
Document
#docker #software #platform
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11⚡4👌4
آشنایی با Kubernetes و تفاوت آن با Docker 🐚
در واقع Kubernetes نوعی سیستم هست که وظیفه هماهنگ کردن برنامههای کاربردی و در حال اجرا روی کانتینرهای مجازی بر عهده داره. Kubernetes اغلب “K8s” نامیده میشه. K8s بهمنظور استقرار و مدیریت برنامههای ابری، از طریق زیرساختها و پلتفرمهای ابر عمومی و بصورت خودکار، استفاده میشه.
⚡️ وظایف kubernetes چیه ؟
انعطافپذیر کردن برنامهها، اختصاص فضای ذخیرهسازی پایدار، مقیاسبندی خودکار و فعالیت مداوم برای حفظ وضعیت مطلوب نرمافزارها از جمله وظایف مهم و کلیدی این سیستم یاد شده.
☯️ ویژگیهای قابل توجه Kubernetes
◀️ کشف سرویس و بالانس کردن بار
◀️ سازماندهی Storage و فضای ذخیرهسازی
◀️ جمعکردن و گسترش دوباره دادهها
◀️ بستهبندی خودکار
◀️ ویژگی Self-healing
◀️ مدیریت و پیکربندی مخفی
تفاوت Docker با Kubernetes چیه ؟
همونطور که توی پست های قبل توضیح دادیم، docker یک سکو و پلتفرم نرمافزاریه که بهمنظور ساخت و ایجاد برنامههای کاربردی کانتینری استفاده میشه. درحالی که Kubernetes یا K8s وظیفه خودکار کردن ابزارهای مختلف و از جمله فرآیند اجرای برنامههای کانتینری و cloud native application ها رو که با استفاده از Docker ساخته شدن رو بر عهده داره.
😉 بسیاری از سازمانها و شرکتها از هر دو سیستم یعنی Docker و Kubernetes بهصورت همزمان استفاده میکنن.
در نهایت Kubernetes تاریخچهای ۱۵ ساله داره و به لطف این پشتوانه و جامعه بزرگ توسعهدهنده هایی که اونو بهینه میکنن، تونسته که به یکی از موفقترین نمونهها در دنیا متنباز تبدیل بشه و انتظار میره در آینده هم شاهد افزایش و پیشرفت این ساز و کار کارآمد باشیم
برای یادگیری kubernetes میتونید به داکیومنتش مراجعه کنید.😎
Document🌕
#kubernetes #containers #different #docker
@CodeModule
در واقع Kubernetes نوعی سیستم هست که وظیفه هماهنگ کردن برنامههای کاربردی و در حال اجرا روی کانتینرهای مجازی بر عهده داره. Kubernetes اغلب “K8s” نامیده میشه. K8s بهمنظور استقرار و مدیریت برنامههای ابری، از طریق زیرساختها و پلتفرمهای ابر عمومی و بصورت خودکار، استفاده میشه.
انعطافپذیر کردن برنامهها، اختصاص فضای ذخیرهسازی پایدار، مقیاسبندی خودکار و فعالیت مداوم برای حفظ وضعیت مطلوب نرمافزارها از جمله وظایف مهم و کلیدی این سیستم یاد شده.
تفاوت Docker با Kubernetes چیه ؟
همونطور که توی پست های قبل توضیح دادیم، docker یک سکو و پلتفرم نرمافزاریه که بهمنظور ساخت و ایجاد برنامههای کاربردی کانتینری استفاده میشه. درحالی که Kubernetes یا K8s وظیفه خودکار کردن ابزارهای مختلف و از جمله فرآیند اجرای برنامههای کانتینری و cloud native application ها رو که با استفاده از Docker ساخته شدن رو بر عهده داره.
در نهایت Kubernetes تاریخچهای ۱۵ ساله داره و به لطف این پشتوانه و جامعه بزرگ توسعهدهنده هایی که اونو بهینه میکنن، تونسته که به یکی از موفقترین نمونهها در دنیا متنباز تبدیل بشه و انتظار میره در آینده هم شاهد افزایش و پیشرفت این ساز و کار کارآمد باشیم
برای یادگیری kubernetes میتونید به داکیومنتش مراجعه کنید.
Document
#kubernetes #containers #different #docker
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7⚡3❤🔥2
دولوپرا و مهندسین DevOps ایرانی، با توجه به تحریم های داکر نمیتونن به راحتی با این ابزار کار کنن، در نتیجه زمانی که میخوان ایمیجی رو pull کنن یا اونو به داکر هاب بفرستن، داکر خطایی تحت عنوان ۴۰۳ میفرسته که این خطا به معنای عدم دسترسی یا Forbidden هست.
چند روش برای رفع این تحریم ها :
تنها با وارد کردن دستور زیر میتونیم ایمیج داکرو دریافت کنیم:
docker pull docker.host:5000/library/IMAGE-NAME
تو این روش نیازه تو فایل daemon.json، کانفیگ هایی که در ادامه مشاهده میکنید رو اضافه کنیم. برای باز کردن فایل daemon.json باید وارد مسیر های زیر بشید :
C:\ProgramData\Docker\config\daemon.json
USER_HOME/.docker/daemon.json
/etc/docker/daemon.json
بعد از باز کردن فایل، یکی از کانفیگ های زیر رو داخل اون وارد کنید.
{ "registry-mirrors": ["https://docker.iranserver.com"] }
{"registry-mirrors": ["https://docker.host:5000"] }
بعد از این که یکی از کانفیگ های بالا رو به فایل daemon.json اضافه کردید، باید داکر رو یبار ری استارت کنید.
اگر از داکر دسکتاپ استفاده می کنید، از طریق منوی برنامه و اگر از ترمینال استفاده می کنید، با این دستور داکر رو ری استارت کنید:
sudo systemctl restart docker
تو این روش میتونید از یک DNS، مثل Dns شکن استفاده کنید.
با این راهکار ها تا حد امکان میتونید از تحریم ها عبور کنید و کارتون رو به نحو احسنت انجام بدید
#docker #lockout
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11⚡3👌2
همه چیز راجب Container ها ⚡️
امروزه در دنیای نرم افزار، Container ها نقش مهمی پیدا کردن و داخل تکنولوژی های بزرگی مثل Docker و kubernetes که دربارشون مفصل صحبت کردیم، استفاده میشن.
🗂 اما کانتینرها دقیقا چی هستند؟
در واقع Containerization یک روش استقرار نرم افزاره که کد برنامه رو با تمام وابستگی های اون (کتابخانه ها و فایل های کانفیگ) مورد نیاز برای اجرا، در یک واحد مستقل به اسم Container بسته بندی میکنه. پس کانتینرها محل نگهداری دپندنسیها و کانفیگیوریشن فایلها هستن.
🤔 کانتینرها چجوری کار میکنن؟
1️⃣ مرحله اول : ساخت تصویر
ما به عنوان یک دولوپر کد هارو مینویسیم و تمام وابستگی های مورد نیاز رو مشخص میکنیم. با استفاده از ابزار هایی مثل Docker یک تصویر درست میکنیم که این تصویر شامل تمام چیز هایی هست که برای اجرای برنامه در هر محیطی نیازه، که از استاندارد (OCI) Open Container Initiative پیروی میکنه.
💙 این تصویر از چند لایه تشکیل میشه:
◀️ لایه پایه : معمولا شامل یک سیستم عامل مینیمال مثل لینوکس هست.
◀️ لایه های وابستگی : این لایه حاوی کتابخونه های از پیش نصب شده و اجزای مورد نیاز برنامه هست.
◀️ لایه برنامه : حاوی کد های برنامه و هر فایل پیکربندی اضافه مخصوص برنامه هست.
2️⃣ مرحله دوم : اجرای کانتینر
زمانی که یک تصویر رو با استفاده از موتور Docker اجرا میکنید، یک کانتینر در حال اجرا از اون تصویر ایجاد میشه.
موتور Docker از هسته سیستم عامل میزبان برای عملکردهای اصلی استفاده میکنه، اما فرایندها و منابع کانتینر رو ایزوله میکنه.
این امر باعث میشه یک محیط اجرای سبک و کارآمد برای اجرای برنامه فراهم میشه.
⚠️ نکات مهمی که بهتره بدونید:
🔵 هر کانتینر در یک فضای کاربری جداگانه اجرا میشه که از تداخل بین برنامهها یا وابستگیها جلوگیری میکنه.
🔵 برای مدیریت تعداد زیادی از کانتینرها، از پلتفرمهای ارکستراسیون کانتینری مثل Kubernetes استفاده میشه.
🔵 بسیاری از پلتفرمهای کانتینری مثل Docker، از رویکرد "امن به صورت پیشفرض" پشتیبانی میکنن، به این معنا که ویژگیهای امنیتی به طور پیشفرض فعال هستن و خطر پیکربندی نادرست رو کاهش میدن.
اما یکسری نقاط ضعف هم وجود داره :
🔢 برخی از منابع هسته سیستم عامل اصلی یا فریمورک های مشترک ممکن توسط چند کانتینر قابل دسترسی باشن، این میتونه آسیب پذیری احتمالی در صورت عدم مدیریت رو ایجاد کنه.
🔢 یک نقض امنیتی در سیستم عامل میزبان میتونه همه کانتینر های درحال اجرا رو به خطر بندازه.
به صورت کلی اگر به دنبال افزایش کارایی، مقیاس پذیری و امنیت در پروژه ها هستید، بهتره از داکر و کانتینرها استفاده کنید🔥
#docker #containerization #container #kubernetes
@CodeModule
امروزه در دنیای نرم افزار، Container ها نقش مهمی پیدا کردن و داخل تکنولوژی های بزرگی مثل Docker و kubernetes که دربارشون مفصل صحبت کردیم، استفاده میشن.
🗂 اما کانتینرها دقیقا چی هستند؟
در واقع Containerization یک روش استقرار نرم افزاره که کد برنامه رو با تمام وابستگی های اون (کتابخانه ها و فایل های کانفیگ) مورد نیاز برای اجرا، در یک واحد مستقل به اسم Container بسته بندی میکنه. پس کانتینرها محل نگهداری دپندنسیها و کانفیگیوریشن فایلها هستن.
ما به عنوان یک دولوپر کد هارو مینویسیم و تمام وابستگی های مورد نیاز رو مشخص میکنیم. با استفاده از ابزار هایی مثل Docker یک تصویر درست میکنیم که این تصویر شامل تمام چیز هایی هست که برای اجرای برنامه در هر محیطی نیازه، که از استاندارد (OCI) Open Container Initiative پیروی میکنه.
زمانی که یک تصویر رو با استفاده از موتور Docker اجرا میکنید، یک کانتینر در حال اجرا از اون تصویر ایجاد میشه.
موتور Docker از هسته سیستم عامل میزبان برای عملکردهای اصلی استفاده میکنه، اما فرایندها و منابع کانتینر رو ایزوله میکنه.
این امر باعث میشه یک محیط اجرای سبک و کارآمد برای اجرای برنامه فراهم میشه.
⚠️ نکات مهمی که بهتره بدونید:
اما یکسری نقاط ضعف هم وجود داره :
به صورت کلی اگر به دنبال افزایش کارایی، مقیاس پذیری و امنیت در پروژه ها هستید، بهتره از داکر و کانتینرها استفاده کنید
#docker #containerization #container #kubernetes
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👌5⚡2😁1
با استفاده از Docker Swarm، میشه یک گروه از worker ها رو بهعنوان یک cluster یا خوشه از سرورهای Docker مدیریت کرد و برنامههای کانتینری رو بر روی اونا اجرا کرد. همچنین امکاناتی برای اجرا، مدیریت، مانیتورینگ و اسکالینگ برنامههای کانتینری در محیطهای توزیعشده فراهم میکنه.
ابزار Docker Swarm برای افرادی که با دستورات Docker آشنا هستن یا در پروژههای کوچیک و متوسط فعالیت میکنن، انتخاب مناسبیه چون یادگیری و نصبش به سادگی انجام میشه. اما Kubernetes به دلیل دارا بودن یک جامعه کاربری بزرگتر و امکان ادغام با Third party tools، از پشتیبانی بیشتری برخورداره و کاربرا میتونن به ابزارهای متنوعی دسترسی پیدا کنن.
به طور کلی، Docker Swarm یک ابزار قدرتمند برای مدیریت و اجرای برنامههای کانتینری در محیطهای توزیعشدست که با استفاده از قابلیتهای مدیریتی، مقیاسپذیری و انعطافپذیری، به توسعهدهندگان امکانات کارآمد و کاربردی برای مدیریت برنامهها رو ارائه میده
#docker #kubernet #dockerswarm
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9🔥2
امتیازات یادگیری docker برای فرانت دولوپر ها 🙋♂️
همونطور که داخل میتینگ سفر در رودمپ فرانت اند صحبت کردیم، یادگیری docker یک مهارت اجباری برای رودمپ فرانت اند نیست، اما یادگیری اون امتیازات و مزایایی برای فرانت دولوپر داره که میتونه هم داخل استخدام، هم داخل فرایند توسعه نرم افزار بهش کمک بکنه.
✅ در این پست میخوایم به این امتیازات و مزایا بپردازیم و برسیشون کنیم:
1️⃣ محیطهای توسعه یکسان: داکر به شما این امکان رو میده که محیطهای توسعه، تست و تولید رو یکسان کنید. این موضوع باعث کاهش مشکلات ناشی از "کار روی ماشین" میشه.
2️⃣ جداسازی دپندنسی ها: با استفاده از داکر، میتونید وابستگیهای پروژههای مختلف رو جدا کنید. این موضوع به جلوگیری از تداخل نسخهها و مشکلات مشابه روی پروژه کمک میکنه.
3️⃣ آسانی در دیپلوی: با ایجاد کانتینرهای داکر، میتونید به راحتی پروژه هاتون رو در محیطهای مختلف دیپلوی کنید، بدون نگرانی از مشکلات محیطی.
4️⃣ توسعهی سریعتر: داکر به شما این امکان رو میده که به سرعت محیطهای جدیدی رو برای تست ویژگیهای جدید ایجاد کنید و به راحتی اونارو حذف کنید.
5️⃣ مدیریت آسانتر: با استفاده از داکر، میتونید پروژه هاتون رو به راحتی مدیریت کنید و به سادگی اونارو آپدیت یا scalable کنید.
6️⃣ همکاری بهتر: داکر میتونه به تیمها کمک کنه تا به راحتی با هم همکاری کنن، چون همه اعضای تیم میتونن از یک محیط یکسان استفاده کنن.
7️⃣ امکان استفاده از CI/CD: داکر به راحتی با ابزارهای CI/CD ادغام میشه، که میتونه باعث تسریع در فرآیند توسعه و استقرار بشه.
8️⃣ تاثیر امتیازی در رزومه :وجود داکر در رزومه شما میتونه نشون دهنده فعال بودنتون در صنعت نرم افزار، به صورت تخصصی تر باشه که از دیدگاه شرکت ها و کارفرما ها میتونه یک مثبت به رزومه شما اضافه کنه.
با توجه به این مزایا، یادگیری داکر برای فرانتاند دولوپرها میتونه یک سرمایهگذاری ارزشمند باشه که به افزایش کارایی و کیفیت کار کمک میکنه🏖️
#docker #frontend
@CodeModule
همونطور که داخل میتینگ سفر در رودمپ فرانت اند صحبت کردیم، یادگیری docker یک مهارت اجباری برای رودمپ فرانت اند نیست، اما یادگیری اون امتیازات و مزایایی برای فرانت دولوپر داره که میتونه هم داخل استخدام، هم داخل فرایند توسعه نرم افزار بهش کمک بکنه.
با توجه به این مزایا، یادگیری داکر برای فرانتاند دولوپرها میتونه یک سرمایهگذاری ارزشمند باشه که به افزایش کارایی و کیفیت کار کمک میکنه
#docker #frontend
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👌3⚡2