
آموزش داکر (Docker) برای برنامه نویسان وب
آموزش داکر (Docker) برای برنامه نویسان وبیکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، قابلیت های داکر (Docker) برای برنامه نویسان وب است که با نام اصلی Docker for Web Developers از شرکت Pluralsight منتشر شده است.
چرا از Docker استفاده می کنیم؟
یکی از موضوعات بسیار مهم و دلایل اصلی استفاده کردن از داکر، ایجاد کردن محیط و یا environment است که در آن دستورالعمل های استاندارد شده را به سادگی اجرا کنید. به عبارت دیگر، داکر کمک می کند تا بتوانید، ناسازگاری و یا inconsistency بین سیستم های مختلف را از بین برده و بسیاری از وظایف تکراری در توسعه نرمافزار را کاهش بدهید.

علاوه بر این موضوع، با توجه به اینکه برنامه نویسان در تیم های مختلف نرم افزاری بر روی بخش های مختلف یک نرم افزار کار میکنند، امکان استفاده کردن از تکنولوژی هایی از قبیل Docker-compose برای ایجاد کردن یک فایل پیکربندی و یا configuration و سپس قرار دادن آن در یک code repository وجود دارد. با این کار اعضای تیم می توانند از این فایل استفاده کرده و development environment اختصاصی خود را بر اساس سیستم خود ایجاد کنند. این موضوع باعث میشود که سازگاری و یا یک شکل بودن و یا اصطلاحا consistency افزایش پیدا کند. در ادامه نیز برخی از مزیت های استفاده کردن از داکر را ذکر کرده ایم.
مزیت های استفاده از داکر
قابلیت تحمل پذیری و یا Portability: استفاده کردن از داکر کمک می کند تا بتوانید تغییرات موجود در development machine را فارق از اینکه کدام یک از اعضای تیم این تغییرات را اعمال کرده اند، به سادگی انتقال و در ماشین های دیگر مورد استفاده قرار بدهید.
قابلیت استفاده مجدد و یا Reusability: استفاده کردن از داکر کمک می کند تا بتوانید از component های ایجاد شده بر روی یک ماشین و یا تعدادی از ماشین ها در ماشین های دیگر نیز به سادگی استفاده کنید.
قابلیت ایزوله کردن محیط محاسباتی و یا Computing environment isolation: با استفاده از داکر مستقل از پلتفرمی که اپلیکشن روی روی آن deploy شده است و همه کامپوننت ها از قیبل؛ کد و dependency ها library ها یک شکل یا consistent می خواهند ماند. این موضوع باعث میشود تا سطح تولید کند و یا اصطلاحا productivity افزایش پیدا کند.

قابلیت جابجایی و یا Mobility: پلتفرم داکر با بسیاری از سیستم عامل ها از قبیل لینوکس و macOS و ویندوز سازگار است. بنابراین با استفاده از داکر می توانید اپلیکشن های مختلف خود را بر روی هر کدام از این سیستم عامل ها اجرا کنید.
قابلیت تست و یا Testing: فایل هایی که با استفاده از تکنولوژی داکر ایجاد میشوند، میتوانند ورژن بندی شوند و در صورت نیاز به نسخه های بعدی و یا قبلی خود باز گردند. این موضوع کمک میکند تا در سیستم های Continuous Integration (CI) و Continuous Deployment (CD) به سادگی از داکر استفاده کنیم.
قابلیت مقیاس پذیری و یا Scaling: بدون نیاز به تغییر اساسی در معماری، می توانیم با داکر، اپلیکیشن ها را در کنار API خود scale و یا مقیاس کنیم. به عبارت دیگر شما با ایجاد کردن container های مختلف و متعدد از اپلیکیشن های خود، اقدام به scale کردن آن خواهید کرد.
ساخت Dockerfile برای برنامههای ASP.NET Core و مدیریت Volumeها
برای اجرای یک برنامه وب در Docker، باید مشخص شود Image چگونه ساخته میشود و کدام فایلها و وابستگیها در محیط اجرایی قرار میگیرند. در این آموزش با نوشتن `Dockerfile` سفارشی برای برنامههای `ASP.NET Core` آشنا میشوید و یاد میگیرید چگونه کد منبع را با یک Container مرتبط کنید. این فرایند کمک میکند مراحل آمادهسازی محیط اجرا به شکل قابلتکرار تعریف شوند. همچنین، کار با `Volume`ها و مدیریت آنها بررسی میشود تا بتوانید دادهها یا فایلهای موردنیاز را بدون وابستگی کامل به چرخه عمر Container نگهداری کنید.
ساخت Image و اجرای Container تنها بخشی از جریان کار است؛ توسعهدهنده باید بتواند منابع ساختهشده را نیز مدیریت کند. این آموزش به حذف Containerها و Volumeها میپردازد و کار با ابزارهای Docker Client را در محیط Mac نشان میدهد. آشنایی با این عملیات برای پاکسازی محیط توسعه، رفع مشکلات ناشی از منابع باقیمانده و آمادهسازی اجرای بعدی اهمیت دارد. با درک تفاوت Image، Container و Volume، راحتتر تشخیص میدهید هر جزء چه مسئولیتی دارد و هنگام تغییر کد یا تنظیمات، کدام بخش باید بازسازی یا حفظ شود.
ارتباط بین Containerها با Docker Compose و شبکههای Docker
در یک برنامه وب، ممکن است وباپلیکیشن برای انجام کار خود به پایگاه داده یا سرویس دیگری نیاز داشته باشد. Docker امکان اجرای این اجزا را در Containerهای جداگانه فراهم میکند، اما ارتباط میان آنها نیز باید درست تنظیم شود. در این آموزش با `Container Network`ها و برقراری ارتباط با استفاده از نام Containerها آشنا میشوید. سپس فایل `docker-compose.yml` را بررسی میکنید و یاد میگیرید چگونه پیکربندی اجرای چند سرویس را در یک فایل تعریف کنید. این رویکرد مدیریت مجموعهای از اجزای وابسته را در محیط توسعه سادهتر میکند.
با استفاده از Docker Compose میتوانید سرویسهای مرتبط را با تنظیمات مشخص تعریف و هماهنگ اجرا کنید، بهجای آنکه هر Container را جداگانه با مجموعهای از دستورها راهاندازی کنید. این آموزش ایجاد یک فایل Compose سفارشی و کار با ابزارهای Docker را پوشش میدهد و در ادامه به اجرای محلی Kubernetes نیز میپردازد. آشنایی با این مسیر کمک میکند ابتدا ارتباط سرویسها را در محیطی سادهتر سازماندهی کنید و سپس با مفاهیم ارکستراسیون آشنا شوید. برای توسعهدهندگان وب، این مباحث پیوندی عملی میان اجرای چند Container و شناخت گامهای اولیه انتقال به Kubernetes ایجاد میکنند.
سرفصل مطالب آموزش ویدیویی داکر (Docker) برای برنامه نویسان وب
فصل اول: مقدمه دوره آموزشی- مقدمه
- مقدمه
- Docker چیست؟
- مزایای استفاده از Docker برای برنامه نویسان Web
- ابزارهای Docker
- کار کردن عملی با Docker
- جمع بندی
- مقدمه
- نصب کردن Docker در Mac
- نصب کردن Docker در ویندوز
- شروع به کار کردن با Docker Kitematic
- استفاده کردن از Docker Kitematic به صورت عملیجمع بندی
- مقدمه
- شروع کار با Docker Machine
- آموزش عملی: کار با Docker Machine در Mac
- آموزش عملی: کار با Docker Machine در ویندوز
- شروع به کار با Docker Client
- آموزش عملی: کار با Docker Client در Mac
- آموزش عملی: کار با Docker Client در ویندوز
- بررسی دستورات Docker
- جمع بندی
- مقدمه
- بررسی Layered File System
- کار کردن با Container ها و Volume ها
- ارتباط Source Code، Volume ها و Container ها
- ارتباط ایجاد کردن بین یک Volume و Source Code مربوط به Node.js
- ارتباط ایجاد کردن بین یک Volume و Source Code مربوط به ASP.NET
- حذف کردن Container ها و Volume ها
- جمع بندی
- مقدمه
- شروع به کار با Dockerfile
- ایجاد کردن یک Dockerfile سفارشی برای Node.js
- ساختن یک Image برای Node.js
- ایجاد کردن یک Dockerfile سفارشی برای ASP.NET Core
- ساختن یک Image سفارشی برای ASP.NET Core
- انتشار و یا Publish کردن یک Image به درون Docker Hub
- جمع بندی
- مقدمه
- شروع به کار کردن با Container Linking
- ایجاد ارتباط و یا Linking بین Container ها با استفاده از نام آنها
- ایجاد Linking بین Container های Node.js و MongoDB
- ایجاد Linking بین Container های ASP.NET Core و PostgreSQL
- شروع به کار کردن با Container Network ها
- آموزش عملی: کار با Container Network ها
- آموزش عملی: کار با Container Network ها
- انجام Linking در چندین Container
- جمع بندی
- مقدمه
- شروع به کار با Docker Compose
- بررسی فایل docker-compose.yml
- بررسی دستورات مربوط به Docker Compose
- آموزش عملی: کار با Docker Compose
- راه اندازی کردن سرویس های Development Environment
- ایجاد کردن یک فایل docker-compose.yml سفارشی
- مدیریت کردن سرویس های Development Environment
- جمع بندی
- مقدمه
- فراتر از Docker Compose
- مقدمه ای بر Kubernetes
- اجرا کردن Kubernetes به صورت Local
- مفاهیم اساسی در Kubernetes
- تبدیل کردن از Docker Compose به Kubernetes
- اجرا کردن Container ها در Kubernetes
- متوقف کردن و حذف کردن Container ها در Kubernetes
- جمع بندی
- جمع بندی







