Code Module | کد ماژول
1.91K subscribers
357 photos
42 videos
6 files
355 links
Hello World 🌎

<> Earth is programmable if you code it </>

Group 👇🏻
@CodeModuleGap

Contact Us 👇🏻
@MrShahiin
@neoMahan
Download Telegram
داکر (docker) چیه و چه کاربردی داره؟ 🐳


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


داکر چجوری کار می‌کنه ؟

داکر براساس معماری کلاینت-سرور کار می‌کنه. این سرویس شامل کلاینت ، میزبان و رجیستری داکره. کلاینت برای اجرای دستورات مختلف کاربرد داره و هاست نیز وظیفه اجرای Daemon رو برعهده داره. در رجیستری نیز Imageهای داکر نگه‌داری می‌شن. کلاینت داکر از طریق REST API با daemon ارتباط برقرار می‌کنه و از این طریق می‌تونین کانتینرهای داکر رو ایجاد، اجرا و توزیع کنید. هم کلاینت و هم daemon رو می‌تونین روی یک سرور اجرا کنین و یا به صورت ریموت اونها رو روی دو سرور مجزا اجرا کنین.


داکر چه کاربرد هایی داره؟

1️⃣ توسعه سریع و پایدار نرم‌افزارهای مختلف

2️⃣ اجرا و مقیاس‌بندی واکنش‌گرا

3️⃣ اجرای حجم کاری بیشتر روی سیستم

4️⃣ استفاده از دیتابیس‌های زودگذر

5️⃣ ابزارهای یکبار مصرف

6️⃣ اجرای کامل دسته‌های نرم‌افزاری



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


Document 🌐

#docker #software #platform
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥114👌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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73❤‍🔥2
🙋‍♂️ چند روش برای عبور از تحریم های داکر !

دولوپرا و مهندسین DevOps ایرانی، با توجه به تحریم های داکر نمیتونن به راحتی با این ابزار کار کنن، در نتیجه زمانی که میخوان ایمیجی رو pull کنن یا اونو به داکر هاب بفرستن، داکر خطایی تحت عنوان ۴۰۳ میفرسته که این خطا به معنای عدم دسترسی یا Forbidden هست.

چند روش برای رفع این تحریم ها :

🔢 دریافت یا pull کردن ایمیج با تونل docker.host :

تنها با وارد کردن دستور زیر میتونیم ایمیج داکرو دریافت کنیم: 

docker pull docker.host:5000/library/IMAGE-NAME


🔢 استفاده از registry-mirrors توی تنظیمات مربوط به داکر :

تو این روش نیازه تو فایل daemon.json، کانفیگ هایی که در ادامه مشاهده میکنید رو اضافه کنیم. برای باز کردن فایل daemon.json باید وارد مسیر های زیر بشید : 

💻 در ویندوز :

C:\ProgramData\Docker\config\daemon.json

🍏 در مکینتاش :

USER_HOME/.docker/daemon.json

🍏 در لینوکس :

/etc/docker/daemon.json

بعد از باز کردن فایل، یکی از کانفیگ های زیر رو داخل اون وارد کنید.

⚠️تفاوت خاصی بین این دو کانفیگ وجود نداره:

🔵کافیگ مربوط به docker.iranserver.com:

{ "registry-mirrors": ["https://docker.iranserver.com"] }


🔵کانفیگ مربوط به docker.host:5000:

{"registry-mirrors": ["https://docker.host:5000"] }


بعد از این که یکی از کانفیگ های بالا رو به فایل daemon.json اضافه کردید، باید داکر رو یبار ری استارت کنید.

اگر از داکر دسکتاپ استفاده می کنید، از طریق منوی برنامه و اگر از ترمینال استفاده می کنید، با این دستور داکر رو ری استارت کنید:

sudo systemctl restart docker


🔢 استفاده از DNS:

تو این روش میتونید از یک DNS، مثل Dns شکن استفاده کنید.


با این راهکار ها تا حد امکان میتونید از تحریم ها عبور کنید و کارتون رو به نحو احسنت انجام بدید 🔥

#docker #lockout
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥113👌2
همه چیز راجب Container ها ⚡️

امروزه در دنیای نرم افزار، Container ها نقش مهمی پیدا کردن و داخل تکنولوژی های بزرگی مثل Docker و kubernetes که دربارشون مفصل صحبت کردیم، استفاده میشن.

🗂 اما کانتینرها دقیقا چی هستند؟

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

🤔 کانتینرها چجوری کار می‌کنن؟

1️⃣مرحله اول : ساخت تصویر

ما به عنوان یک دولوپر کد هارو می‌نویسیم و تمام وابستگی های مورد نیاز رو مشخص میکنیم. با استفاده از ابزار هایی مثل Docker یک تصویر درست میکنیم که این تصویر شامل تمام چیز هایی هست که برای اجرای برنامه در هر محیطی نیازه، که از استاندارد (OCI)  Open Container Initiative پیروی می‌کنه.

💙 این تصویر از چند لایه تشکیل میشه:

◀️لایه پایه : معمولا شامل یک سیستم عامل مینیمال مثل لینوکس هست.

◀️لایه های وابستگی :  این لایه حاوی کتابخونه های از پیش نصب شده و اجزای مورد نیاز برنامه هست.

◀️لایه برنامه : حاوی کد های برنامه و هر فایل پیکربندی اضافه مخصوص برنامه هست.


2️⃣مرحله دوم : اجرای کانتینر

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

⚠️ نکات مهمی که بهتره بدونید:

🔵 هر کانتینر در یک فضای کاربری جداگانه اجرا میشه که از تداخل بین برنامه‌ها یا وابستگی‌ها جلوگیری میکنه.

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

🔵 بسیاری از پلتفرم‌های کانتینری مثل Docker، از رویکرد "امن به صورت پیش‌فرض" پشتیبانی می‌کنن، به این معنا که ویژگی‌های امنیتی به طور پیش‌فرض فعال هستن و خطر پیکربندی نادرست رو کاهش میدن.

اما یکسری نقاط ضعف هم وجود داره :

🔢 برخی از منابع هسته سیستم عامل اصلی یا فریمورک های مشترک ممکن توسط چند کانتینر قابل دسترسی باشن، این میتونه آسیب پذیری احتمالی در صورت عدم مدیریت رو ایجاد کنه.

🔢 یک نقض امنیتی در سیستم عامل میزبان میتونه همه کانتینر های درحال اجرا رو به خطر بندازه.

به صورت کلی اگر به دنبال افزایش کارایی، مقیاس پذیری و امنیت در پروژه ها هستید، بهتره از داکر و کانتینرها استفاده کنید🔥


#docker #containerization #container #kubernetes
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👌52😁1
👩‍💻 با Docker Swarm بیشتر آشنا بشید

🔵Docker Swarm یک ابزار برای مدیریت و اجرای برنامه‌های کانتینری با استفاده از تکنولوژی کانتینریزاسیون Docker هست. Docker Swarm به عنوان یک ابزار بنیادی در اکوسیستم Docker برای ایجاد یک محیط توزیع‌شده از کانتینرها به‌کار میره.

با استفاده از Docker Swarm، میشه یک گروه از worker ها رو به‌عنوان یک cluster یا خوشه از سرورهای Docker مدیریت کرد و برنامه‌های کانتینری رو بر روی اونا اجرا کرد. همچنین امکاناتی برای اجرا، مدیریت، مانیتورینگ و اسکالینگ برنامه‌های کانتینری در محیط‌های توزیع‌شده فراهم می‌کنه.

👩‍💻 مقایسه Docker Swarm و Kubernetes:

‼️ابزار های Docker Swarm و Kubernetes به عنوان دو ابزار اصلی و حیاتی در مجموعه‌سازی کانتینرها شناخته میشن.

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

🔵 اما Kubernetes که توسط گوگل ایجاد شده، به دلیل قابلیت‌های خود در خودکارسازی استقرار، مقیاس‌ پذیری و مدیریت برنامه‌های کانتینری شناخته شده. Kubernetes قادره به مدیریت محیط‌های پیچیده بپردازه و امکانات متنوعی رو در زمینه مدیریت workload (برنامه‌های در حال اجرا روی Kubernetes) ارائه بده، اما نصب و مدیریتش به دلیل پیچیدگیش نیازمند دانش و مهارت بیشتریه.

ابزار 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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👌32