در این آموزش، ما به نحوه پیکربندی سرور ویندوز برای اجرای کانتینرهای Docker خواهیم پرداخت. Docker به یک تغییر دهنده بازی در کانتینریزه کردن برنامهها و الگوهای طراحی و استقرار میکروسرویسها تبدیل شده است. Docker این امکان را فراهم میکند که به راحتی تصاویر حاوی برنامهها با وابستگیهایشان را ساخته، ارسال و اجرا کنید و از مشکلات پیچیده وابستگیهایی که معمولاً با استفاده از ماشینهای مجازی همراه است، جلوگیری کنید.
موتور Docker چیزی است که کانتینرهای Docker را قادر به اجرا میکند. این موتور در ابتدا برای لینوکس نوشته شده بود، اما کار زیادی انجام شده تا کاربران ویندوز و macOS نیز بتوانند کانتینرهای Docker را اجرا کنند.
یکی از پیشنیازها نصب سرور ویندوز است. این میتواند بر روی یک ماشین مجازی که بهصورت محلی اجرا میشود، یک سرور فیزیکی یا یک نمونه ابری در Azure باشد.
✅Docker چیست؟
به طور کلی، Docker یک پلتفرم باز برای عملکرد، توسعه و ارسال برنامهها است. این پلتفرم به کاربران این امکان را میدهد که برنامهها را درون کانتینرها بستهبندی کنند. به طور اساسی، Docker یک ابزار عالی برای اجرا و بستهبندی برنامهها است. به این ترتیب، شما میتوانید محدودیتهای استانداردی بسازید که شامل اجزای مختلفی است که برای عملکرد به صورت ایزوله به آنها نیاز دارید.
نکته دیگر در مورد Docker این است که از نظر فنی یک نرمافزار مدیریت کانتینر است که در سال 2013 توسعه یافته است. همچنین، به توسعهدهندگان کمک میکند تا فریمورک را به گونهای مدیریت کنند که انگار در حال مدیریت برنامهها هستند.
مطمئناً، Docker در دنیای بستهبندی ابری و برنامهها محبوبیت زیادی پیدا کرده است. ویژگی دیگر Docker این است که شما میتوانید استقرار برنامهها را در کانتینرهای قابل حمل و سبکوزن خودکار کنید.
✅نحوه کار Docker ؟
در واقع، Docker بستهها را فراهم کرده و کانتینرها را اجرا میکند. بنابراین، فناوری کانتینر از طریق سیستم عامل در دسترس است و هر کانتینر خدمات خود را با سیستم عامل پایه به اشتراک میگذارد.
یکی دیگر از ویژگیهای Docker این است که کانتینرهای مختلف را بر روی یک سیستم عامل مشابه با استفاده از جداسازی منابع هسته اجرا میکند. در حقیقت، این ویژگی آن را از ماشینهای مجازی متمایز میکند که تمرکز آنها بر روی محصور کردن سیستم عامل با کد اجرایی روی سختافزار فیزیکی است.
تصاویر ابزارها شامل وابستگیهای مورد نیاز برای اجرای کد درون کانتینر هستند. کانتینرها بدون هیچ تغییری عمل میکنند و بین محیطهای Docker با همان سیستم عامل منتقل میشوند.
برای مثال، Docker بر روی لینوکس کار میکند، اما از سیستمهای عامل غیر لینوکس مانند ویندوز مایکروسافت و macOS نیز پشتیبانی عالی ارائه میدهد. همچنین توسعهدهندگان میتوانند به نسخههای Docker برای خدمات ابری آمازون AWS و مایکروسافت Azure دسترسی داشته باشند.
✅ویژگیهای Docker
در واقع، Docker ویژگیهای متعددی را ارائه میدهد، اما در اینجا به برخی از ویژگیهای مهم آن اشاره میکنیم که به شما کمک میکند بهتر آن را درک کنید.
پیکربندی سریع: پیکربندی آسان و سریع را ارائه میدهد و به ایجاد یک محیط مدیریت برنامههای ایزوله شده کمک میکند.
مدیریت مؤثر: هزینههای زیرساخت و نگهداری را کاهش میدهد تا به شما کمک کند هزینهها را صرفهجویی کرده و عملیات کسبوکار خود را بهبود بخشید.
مقیاسپذیری: ساده برای مقیاسبندی و دستیابی به نتایج کسبوکار با دقت و ظرافت.
مدلسازی ساده با Docker.
قابلیتهای عملیاتی عالی: کاراییهای عملیاتی برای حذف مشکلات متعدد که در طول مدیریت پیش میآیند.
ارائه محیط ایزوله برای چندین برنامه مدیریتی.
این ویژگیهای Docker میتوانند مزایای متعددی را برای کسبوکارها بر اساس اهداف، نیازها و عوامل دیگر ارائه دهند.
✅مزایای استفاده از Docker
از میان مزایای متعدد، در اینجا بهترینها آورده شده است:
سرعت و ثبات:
بدون شک، Docker فرآیند توسعه را ساده میکند، زیرا به توسعهدهندگان این امکان را میدهد که در محیطهای استاندارد با استفاده از کانتینرهای محلی کار کنند. همانطور که ذکر شد، کانتینرها برای جریانهای کاری ادغام مداوم و تحویل مداوم (CI/CD) بسیار مناسب هستند.به مثال زیر توجه کنید:
- توسعهدهندگان کد را بهصورت محلی نوشته و آن را با همکاران خود با استفاده از کانتینرهای Docker به اشتراک میگذارند.
- آنها از Docker برای پردازش برنامههای خود در یک محیط آزمایشی استفاده کرده و تستهای دستی و خودکار را انجام میدهند.
- زمانی که توسعهدهندگان خطاهایی را پیدا میکنند، میتوانند آنها را در محیط توسعه اصلاح کرده و به محیط آزمایشی انتقال دهند.
- پس از تکمیل تستها، برای رفع اشکال، یک تصویر بهروزشده به محیط تولید ارسال میشود.
سرعت و قابلیت اطمینانی که Docker ارائه میدهد در مقایسه با ابزارهای دیگر بینظیر است.
مقیاسبندی و استقرار واکنشگرا:
به این ترتیب، پلتفرم مبتنی بر کانتینر Docker امکان بارهای کاری بسیار قابل حمل را فراهم میکند. کانتینرها میتوانند روی لپتاپ محلی شما یا یک ماشین فیزیکی یا مجازی در یک مرکز داده اجرا شوند.آنها همچنین میتوانند روی ارائهدهندگان مختلف ابری یا در چندین محیط دیگر اجرا شوند. طبیعت سبک و قابلیت حمل Docker، مدیریت مؤثر بارهای کاری، مقیاسگذاری خدمات و برنامهها را ساده میکند.
اجرای بارهای کاری بیشتر:
همچنین، Docker سبک و سریع است. میتوانید بارهای کاری بیشتری را روی همان سختافزار اجرا کنید. بهویژه، این یک جایگزین مقرونبهصرفه و قابلاعتماد برای ماشینهای مجازی مبتنی بر هایپرویزر است که به شما این امکان را میدهد که از ظرفیت سرور خود برای دستیابی به نتایج دلخواه بیشتر استفاده کنید. بنابراین، Docker برای محیطهای با تراکم بالا و استقرارهای متوسط یا کوچک که باید با منابع کمتر، کار بیشتری انجام دهید، عالی است.
در مجموع، این ابزار عالی در فرآیند استقرار مداوم شما کمک میکند. این ابزار بهخوبی با نرمافزارهای مختلف مدیریت پیکربندی یکپارچه شده است. اکوسیستم در حال توسعه و بزرگ Docker، دامنه وسیعی از کاربردها را پوشش میدهد.
✅شرایط لازم
- یک سرور با سیستمعامل ویندوز سرور ۲۰۱۹/۲۰۲۲ همراه با دسترسی RDP.
- یک کاربر با حقوق مدیریتی.
- حداقل ۴ گیگابایت رم و ۲ هسته پردازنده.
نصب ویژگیهای کانتینرها در ویندوز سرور ۲۰۱۹ / ۲۰۲۲
برای اجرای کانتینرها بهطور بومی در ویندوز، شما باید ویژگیهای کانتینر ویندوز سرور را بر روی سرور خود نصب کنید. برای نصب ویژگیهای کانتینرها مراحل زیر را دنبال کنید:
مرحله ۱ – مدیر سرور ویندوز را باز کنید. شما باید صفحه زیر را مشاهده کنید:

مرحله ۲ – بر روی گزینه "Add roles and Features Wizard" کلیک کنید. شما باید صفحه "قبل از شروع" را مشاهده کنید:

مرحله ۳ – بر روی دکمه "Next" کلیک کنید. شما باید صفحه "انتخاب سرور مقصد" را مشاهده کنید:

مرحله ۴ – بر روی دکمه "Next" کلیک کنید. شما باید صفحه "انتخاب ویژگیها" را مشاهده کنید:

مرحله ۵ – ویژگیهای Containers را انتخاب کرده و بر روی دکمه "Next" کلیک کنید. شما باید صفحه تأیید انتخاب نصب را مشاهده کنید:

مرحله ۶ – بر روی دکمه "Install" کلیک کنید تا فرآیند نصب شروع شود. شما باید صفحه زیر را مشاهده کنید:

مرحله ۷ – پس از تکمیل نصب، بر روی دکمه "Close" کلیک کنید تا از ویندوز نصب خارج شوید.
✅نصب نقشهای Hyper-V
برای استفاده از ایزولهسازی Hyper-V، شما نیاز به افزودن نقشهای Hyper-V دارید. مراحل زیر را برای افزودن نقشهای Hyper-V دنبال کنید:
مرحله ۱ – مدیر سرور ویندوز را باز کنید. باید صفحه زیر را مشاهده کنید:

مرحله ۲ – روی "Add roles and Features Wizard" کلیک کنید. سپس، روی دکمه "Next" کلیک کنید.

مرحله ۳ – در صفحه "Select server roles"، نقشهای Hyper-V را انتخاب کرده و روی دکمه "Next" کلیک کنید. شما باید صفحه زیر را مشاهده کنید:

مرحله ۴ – روی دکمه "Next" کلیک کنید. شما باید صفحه "Create Virtual Switches" را مشاهده کنید:

مرحله ۵ – روی دکمه "Next" کلیک کنید. شما باید صفحه "Virtual Machine Migration" را مشاهده کنید:

مرحله ۶ – روی دکمه "Next" کلیک کنید. شما باید صفحه "Default Stores" را مشاهده کنید:

مرحله ۷ – روی دکمه "Next" کلیک کنید. شما باید صفحه تأیید انتخاب نصب را مشاهده کنید:

مرحله ۸ – روی دکمه "Install" کلیک کنید تا فرآیند نصب شروع شود. پس از نصب موفقیتآمیز، سیستم خود را ریستارت کنید تا تمامی تغییرات اعمال شوند.
✅نصب داکر روی ویندوز سرور ۲۰۱۹ / ۲۰۲۲
قبل از اینکه بتوانید از کانتینرهای ویندوز برای اجرای برنامههای ایزوله شده متعدد در سیستم خود استفاده کنید، نیاز به فعالسازی ویژگی کانتینرها و نصب Docker بر روی ویندوز سرور خواهید داشت.
مرحله 1: فعالسازی ویژگی کانتینرها
اولین قدم فعالسازی ویژگی کانتینرهای ویندوز سرور است. "Windows PowerShell" را باز کرده و روی "اجرای به عنوان مدیر" کلیک کنید.

دستورات زیر را برای نصب DockerMsftProvider اجرا کنید:
Enable-WindowsOptionalFeature -Online -FeatureName Containers
با فشردن کلید y در کیبورد خود تایید کنید. برای اعمال تغییرات، باید سیستم را راهاندازی مجدد کنید، یا به صورت دستی این کار را انجام دهید:
Restart-Computer -Force
گام 2: نصب موتور Docker
پس از فعالسازی ویژگی Containers در ویندوز سرور، برای نصب جدیدترین نسخه Docker Engine و Client، دستور زیر را در جلسه PowerShell خود اجرا کنید.
نصب Docker:
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force Install-Package -Name docker -ProviderName DockerMsftProvider
پس از اتمام نصب، سیستم را ریستارت کنید.
Restart-Computer -Force
نسخه نصبشده Docker را میتوانید با دستورات زیر بررسی کنید:

برای شروع دستی سرویس، دستور زیر را اجرا کنید:
Start-Service Docker
برای متوقف کردن سرویس Docker، دستور زیر را اجرا کنید:
Stop-Service Docker
گام 3: اجرای کانتینر Docker
قبل از شروع به اجرای و مدیریت کانتینرهای Docker، باید دیمون Docker را راهاندازی کنید.
برای شروع دیمون Docker، دستور زیر را اجرا کنید:
Start-Service Docker
و وضعیت سرویس Docker را بررسی کنید.
مخزن مایکروسافت حاوی چندین تصویر پایه است، تصویر پایه را دانلود و نصب کنید:
تصویر Windows Server Core را دانلود کنیم:

ما میتوانیم یک کانتینر جدید از تصویری که دانلود کردهایم، ایجاد کنیم:
docker run -it mcr.microsoft.com/windows/servercore:ltsc2019
مرحله 4: اجرای کانتینرهای لینوکس
در صورتی که از ماشین مجازی لینوکس در حال اجرا روی Hyper-V برای اجرای کانتینرهای Docker استفاده میکنید، باید مجازیسازی تو در تو را فعال کنید.
Get-VM WinContainerHost | Set-VMProcessor -ExposeVirtualizationExtensions $true
فعالسازی سیستم LinuxKit برای اجرای کانتینرهای لینوکس
Restart-Service docker
ویژگی های آزمایشی را در Docker daemon.conf فعال کنید
$configfile|Out-File -FilePath C:\ProgramData\docker\config\daemon.json -Encoding ascii -Force
از آنجا که کانتینرهای لینوکس به کرنل لینوکس نیاز دارند، برای اجرای آنها باید LCOW (Linux Containers on Windows) را پیادهسازی کنیم.
Invoke-WebRequest -Uri "https://github.com/linuxkit/lcow/releases/download/v4.14.35-v0.3.9/release.zip" -UseBasicParsing -OutFile release.zip
Expand-Archive release.zip -DestinationPath "$Env:ProgramFiles\Linux Containers\."
یک تصویر تست داکر را بارگیری کنید.
برای بازگشت به اجرای کانتینرهای ویندوز، دستور زیر را اجرا کنید:
[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "$null", "Machine")
از اجرای کانتینرهای لینوکس و ویندوز در ویندوز سرور 2022 یا 2019 لذت ببرید.
استقرار کانتینرهای داکر ویندوز روی ویندوز ۲۰۱۹ / ۲۰۲۲
در این مقاله، نحوه استقرار کانتینر داکر ویندوز سرور روی سیستمی که ویندوز سرور ۲۰۱۹ / ۲۰۲۲ را اجرا میکند، یاد گرفتید. اکنون میتوانید به راحتی برنامه خود را در محیط کانتینری شده استقرار دهید. در نهایت، داکر به شما این امکان را میدهد که برنامهها را از زیرساخت محلی جدا کنید. این امر باعث میشود که استقرار نرمافزار سریعتر، آسانتر و امنتر از همیشه باشد.
همچنین، داکر مزایای زیادی ارائه میدهد که به شما کمک میکند اپلیکیشنهای کانتینری شده و چندکانتینری بسازید. شما میتوانید از داکر برای سادهسازی عملیات DevOps خود استفاده کنید، اما قبل از آن فراموش نکنید که معماری آن را بهخوبی درک کنید.