
آموزش شروع به کار با داکر Docker در ویندوز
آموزش شروع به کار با داکر Docker در ویندوز یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی شروع به کار با Docker بر روی ویندوز است که با نام اصلی Getting Started with Docker on Windows از شرکت Pluralsight منتشر شده است.
داکر (Docker) چیست؟
به بیان ساده Docker ابزاری است که رسالتش سادهتر کردن روند ایجاد کردن، Deploy کردن و اجرا کردن اپلیکیشن ها با استفاده از Container ها می باشند. Container ها به برنامه نویس اجازه میدهند تا یک اپلیکیشن به همراه تمامی قسمت ها و Dependency ها و Library های مورد نیازش بسته بندی کرده و در قالب یک پکیج تک Deploy کند. با استفاده از این روند برنامه نویس می تواند اطمینان حاصل کند که برنامه ی Containerize شده اش در Environment های مختلف مستقل از اینکه آن Environment ها چه تنظیمات و یا سیستم عاملی دارند، به سادگی اجرا بشود. عملکرد Docker کمی شبیه به ماشین های مجازی و یا Virtual Machine ها می باشند. البته یک تفاوت اصلی بین Docker و ماشین های مجازی این است که در زمان استفاده کردن از یک ماشین مجازی یک سیستم عامل مجازی کاملاً مستقل در اختیار شما قرار خواهد گرفت اما با استفاده از Docker شما میتوانید از Kernel و یا هسته همان سیستم عاملی که قرار است برنامه بر روی آن اجرا بشود استفاده کرده و فقط در پکیج مربوط به برنامه آن دسته از Dependency ها و Library هایی را قرار بدهید که در سیستم میزبان وجود ندارند. این موضوع باعث میشود که Performance و یا سرعت عملکرد استفاده کردن از Docker نسبت به ماشین های مجازی به مراتب افزایش پیدا کند.
یکی از ویژگی های جذاب Docker این است که میتواند به عنوان یک ابزار هم برای برنامه نویسان و هم برای مدیران سیستم مورد استفاده قرار بگیرد. این موضوع امروزه باعث شده است که Docker در عملیات DevOps بسیار پرکاربرد باشد. با استفاده از Docker یک برنامه نویس می تواند تمرکز اصلی خود را بر روی نوشتن کد بگذارد و نگران تنظیمات سیستم نهایی که برنامه قرار است بر روی آن اجرا بشود نباشد. از طرفی مدیران سیستم میتوانند از Docker قابیلت انعطاف پذیری آن بسیار بهره مند شوند. با استفاده از داکر تعداد سیستم های مورد نیاز و البته سربار و یا Overhead مربوط به سیستم های مورد نیاز کاهش پیدا خواهد.
Container چیست؟
در ادامه می خواهیم کمی در رابطه با Container ها در Docker صحبت کنیم. یک Container در واقع یک واحد استاندارد سازی شده است، که میتواند برای Deploy کردن یک اپلیکیشن و یا Environment منحصر به فرد مورد استفاده قرار بگیرد.

در واقع با استفاده از Container ها شما می توانید نیازمندی های مربوط به سیستمعامل را برای اجرا کردن یک اپلیکیشن خاص فراهم کنید. ضمن استفاده کردن از این بسته آموزشی برای یادگیری مفاهیم اولیه توصیه میکنیم از آموزش توسعه وب اپلیکیشن ASP.NET Core و داکر Docker و آموزش داکر Docker و Container در پروژه های ASP.NET Core استفاده کنید.
شروع کار با Docker در محیط ویندوز
Docker ابزاری برای ساخت و اجرای Containerهاست که به توسعهدهندگان کمک میکند برنامهها را همراه با وابستگیهای مورد نیازشان در محیطی مشخص اجرا کنند. در ویندوز نیز میتوان از Docker برای کار با اپلیکیشنهای مختلف، از ابزارهای خط فرمان گرفته تا وبسایتها و دیتابیسها، استفاده کرد. برای شروع یادگیری، مهم است ابتدا با مفاهیم اصلی Docker آشنا شوید و سپس نحوه نصب و اجرای آن را در محیط ویندوز بررسی کنید تا بتوانید کاربرد آن را در سناریوهای واقعی توسعه نرمافزار بهتر بشناسید.
یکی از مزیتهای کار با Container این است که برنامه میتواند در محیطی جداگانه اجرا شود، بدون آنکه لازم باشد تمام اجزای آن مستقیماً روی سیستم میزبان نصب شوند. این ویژگی در زمان توسعه و آزمایش نرمافزار کاربرد دارد؛ برای مثال، میتوان یک سرویس یا دیتابیس را در Container اجرا کرد و آن را در کنار سایر اجزای برنامه به کار گرفت. آشنایی با Docker در ویندوز، نقطه شروع مناسبی برای یادگیری شیوههای مدرن بستهبندی و اجرای نرمافزار است.
اجرای ابزارهای خط فرمان و وبسایتها در Docker
Containerها فقط برای اپلیکیشنهای بزرگ یا سرویسهای پیچیده نیستند؛ حتی برنامههای Command Line نیز میتوانند درون آنها اجرا شوند. این قابلیت به توسعهدهنده اجازه میدهد ابزارها را در محیطی مشخص آزمایش کند و وابستگیهای آنها را از سیستم اصلی جدا نگه دارد. در کنار این کاربرد، Docker امکان ساخت Imageهایی را نیز فراهم میکند که برای میزبانی وبسایتها استفاده میشوند. به این ترتیب، میتوان با یک مفهوم مشترک، سناریوهای مختلف اجرای نرمافزار را مدیریت کرد.

برای نمونه، ممکن است بخواهید یک وبسایت را در Container اجرا کنید یا برنامهای را آزمایش کنید که از طریق خط فرمان کار میکند. در هر دو حالت، Image مشخص میکند محیط اولیه اجرای برنامه چگونه آماده شود و Container نمونهای از آن محیط را فراهم میکند. آشنایی با این کاربردها کمک میکند تفاوت میان Image و Container را در عمل بهتر متوجه شوید و برای اجرای برنامههای مختلف، روش مناسبتری انتخاب کنید.
اجرای دیتابیس و ترکیب سرویسها با Docker Compose
اجرای دیتابیس در Container میتواند راهی برای آمادهسازی یک محیط توسعه یا آزمایش باشد. بهجای آنکه برای هر سناریو تنظیمات مستقلی روی سیستم میزبان انجام دهید، میتوانید از Image مناسب دیتابیس استفاده کنید و نمونهای از آن را در قالب Container اجرا کنید. البته برای استفاده درست از دیتابیس باید به مواردی مانند تنظیمات اتصال، نگهداری دادهها و پیکربندی سرویس توجه داشته باشید. شناخت این جزئیات، استفاده از Container را در پروژههای واقعی کاربردیتر میکند.
در برنامههایی که از چند سرویس تشکیل شدهاند، مدیریت جداگانه هر Container میتواند پیچیدگی بیشتری ایجاد کند. Docker Compose امکان تعریف و مدیریت چند سرویس مرتبط را از طریق یک فایل پیکربندی فراهم میکند. برای مثال، یک محیط توسعه میتواند شامل اپلیکیشن و دیتابیس باشد که هرکدام در Container جداگانه اجرا میشوند و برای ارتباط با یکدیگر تنظیم شدهاند. این روش به سازماندهی محیطهای چندسرویسی کمک میکند و روند راهاندازی مجدد آنها را منظمتر میسازد.
نصب و راهاندازی Docker در ویندوز و Windows Server
برای استفاده از Docker، ابتدا باید محیط مناسب را نصب و آماده کنید. مراحل راهاندازی به نسخه ویندوز و نوع محیطی که قصد استفاده از آن را دارید بستگی دارد؛ برای نمونه، کار با Windows Server ممکن است با راهاندازی Docker روی نسخه دسکتاپ ویندوز تفاوت داشته باشد. آشنایی با این تفاوتها کمک میکند پیش از اجرای Containerها، محدودیتها و نیازهای محیط خود را بهتر بشناسید و از انتخاب تنظیمات نامتناسب جلوگیری کنید.
پس از آمادهسازی محیط، میتوانید با اجرای Containerهای ساده، نحوه کار Docker را بهصورت عملی بررسی کنید. شروع با نمونههای کوچک، مانند اجرای یک ابزار خط فرمان یا راهاندازی یک سرویس، درک مفاهیم Image و Container را آسانتر میکند. سپس میتوان به سراغ سناریوهای ترکیبی رفت که در آنها چند جزء نرمافزار به یکدیگر وابستهاند. این مسیر مرحلهای برای افرادی که تازه با Docker در ویندوز آشنا میشوند، پایهای مناسب برای ادامه یادگیری فراهم میکند.
سرفصل مطالب آموزش ویدئویی شروع به کار با داکر (Docker) در ویندوز
فصل اول: مقدمه دوره آموزشی
- مقدمه دوره آموزشی
فصل دوم: یک Container چیست؟
- نصب کردن یک نرمافزار کاری دشوار است
- چالشهای پیدا کردن یک نرم افزار برای نصب کردن
- چالشهای نصب کردن یک نرمافزار
- چالشهای اجرا کردن یک نرمافزار
- Container ها فقط برای انجام Virtualization استفاده نمی شوند
- نصب کردن و اجرای کردن MongoDB به عنوان یک اپلیکیشن سنتی
- پیدا کردن نرم افزار بر روی Docker Hub
- دانلود کردن نرم افزار با دستور docker pull
- اجرا کردن نرم افزار در یک Container با استفاده از دستور docker run
- اجرا کردن Container شبیه به اجرا کردن یک اپلیکیشن معمولی است
- متوقف کردن اپلیکیشن های درون یک Container باعث متوقف شدن Container نمیشود
- چرا استفاده کردن از داکر و Container ها مناسب است؟
فصل سوم: نصب کردن داکر برای ویندوز
- مقدمه
- نصب کردن داکر برای ویندوز (Docker For Windows) بر روی ویندوز 10
- Docker for Windows چه چیزی را نصب میکند؟
- اجرا کردن Linux Container ها بر روی ویندوز
- داکر یادگیری را معکوس میکند
- متوقف کردن Container ها به معنی متوقف کردن Process ها میباشد
- ریستارت کردن Container ها و دستور docker ps -a
- حذف کردن Container ها بسیار شبیه به حذف کردن نرم افزار های معمولی می باشد
- حذف کردن Image ها بسیار شبیه به حذف کردن یک Installer میباشد
- اجرا کردن Docker Doc ها در یک Container
- دستور docker run -it و پارامتر –name
- سوئیچ کردن به ویندوز Container ها
- اجرا کردن IIS در یک Windows Container
- Container ها Isolated Network Adapter خاص خود را دارند
- جمع بندی
فصل چهارم: نصب کردن داکر بر روی ویندوز سرور
- چگونه Docker for Windows از Container های ویندوز و لینوکس پشتیبانی می کند
- بررسی معماری Docker on Windows
- استفاده کردن از مستندات مربوط به Windows Container ها
- نصب کردن Docker on Windows
- اجرا کردن NET Core Image.
- اجرا کردن Command Prompt درون یک Container
- بررسی کردن User Space و Kernel Space
- بررسی کردن Image هایی که شامل User Space می باشند
- شما می توانید هر اپلیکیشنی را در Image اجرا کنید
- Layer ها و Shared ها و Immutable بودن
- کنترل کردن فرآیندی که در یک Container اجرا می شود
- تعریف کردن یک Container Host
- Container ها دارای فایل سیستم ایزوله شده ایجاد شده توسط Image ها می باشند
- استفاده کردن از Namespace ها باعث ایجاد Isolation می شود
- Process ها Isolated هستند
- Network Stack ها Isolated هستند
- Environment Variable ها و Computer Name دو ماهیت متفاوت است
- Registry هم Isolated است
- User ها و Group ها Isolated هستند
- دو نوع Windows Container وجود دارند
- اجرا کردن یک Hyper-V Container
- جمع بندی
فصل پنجم: اجرا کردن اپلیکیشن های Command Line در Container ها
- مقدمه
- Export کردن Image ها با استفاده از دستور docker save
- سوئیچ کردن Docker for Windows به Linux Container ها
- بررسی کردن Image های رسمی و Automated Build ها
- اجرا کردن یک Shell با Alpine Linux Container
- استفاده کردن از Volumes برای به اشتراک گذاشتن File System با استفاده از یک Container
- تغییر دادن Host File ها
- ابزار هایی که در یک Container نصب شده اند
- منتقل کردن فایل های به درون یک Container به درون یک Host
- استخراج کردن File System از یک Windows Container Image Layer
- اجرا کردن دستور nmap در یک Container
- تبدیل کردن ویدیوها ffmpeg در یک Container
- جمع بندی
فصل ششم: ساختن Image هایی برای میزبانی وبسایت ها
- مقدمه
- نگاشت فایل های استاتیک یک وبسایت به یک Web Server Container
- Mount کردن فایل های یک وبسایت
- تغییر دادن فایل های موجود در یک Container در حال اجرا شدن
- کپی کردن فایل ها به درون یک Container در حال اجرا شدن
- شکستن فایل ها به درون یک Image از یک Container
- اجرا کردن یک Container از یک Image سفارشی
- نگاه کردن به Image Layer ها
- اجتماع گرفتن از File System
- چگونه Container های در حال اجرا به Image ها تبدیل میشوند؟
- بررسی کردن دستورات Docker History و Docker Diff
- انتقال از Command ها به Docker File
- استفاده کردن از از دستورات Docker Build برای ایجاد کردن یک Image
- ایجاد کردن یک Image برای میزبانی کردن یک وبسایت در IIS
- Publish کردن Image ها به Docker Hub
- جمع بندی
فصل هفتم: اجرا کردن دیتابیس ها درContainer ها
- مقدمه
- اجرا کردن MSSQL 2016 Express در یک درContainer
- متصل کردن SSMS به MSSQL در یک درContainer
- اجرا کردن MySQL در یک درContainer
- بررسی کردن Volume های مدیریت شده توسط داکر
- استفاده کردن از Volume های مدیریت شده برای ذخیره کردن داده ها پس از از بین رفتن درContainer
- متوقف کردن تمامی درContainer های در حال اجرا
- حذف کردن تمامی Container
- حذف کردن تمامی Volume ها
- حذف کردن Dangling Volume ها
- حذف کردن تمامی Image ها
- حذف کردن Dangling Image ها
- جمع بندی
فصل هشتم: ترکیب کردن و ساختن اپلیکیشن ها با استفاده از دستور Docker-Compose
- مقدمه
- دلیل استفاده کردن از دستور docker-compose
- بررسی کردن فایل docker-compose.yml و سه Container
- آغاز به کار کردن اپلیکیشن های پیچیده با یک Command تک و استفاده کردن از docker-compose up
- شما چه چیزی را با دستور docker-compose ایجاد کردید
- استفاده کردن از دستور docker-compose باعث ایجاد شدن Isolated Container Network میشوند
- بررسی Service Discovery از طریق Embedded DNS Server
- متصل کردن یک Container دیگر به User Defined Network
- ریستارت کردن Container ها با دستور docker-compose start
- استفاده کردن از PSQL در Postgres و Container آن برای بررسی کردن یک دیتابیس
- نصب کردن زیرساخت ایجاد شده با استفاده از دستور docker-compose
- اجرا کردن اپلیکیشن ASP.NET Core MVC با استفاده از دستور docker-compose
- جمعبندی
- قدمهای بعدی شما چه هستند







