آموزش رایگان ویندوز سرور منطبق با سرفصل‌های بین المللی – 57
چگونه از داکر در ویندوز سرور 2019 استفاده کنیم؟
داکر یک پروژه منبع باز و یک ابزار کاربردی است که ابتدا برای کمک به اجرای کانتینرها در سیستم‌عامل لینوکس به کار گرفته می‌شد، اما محبوبیت کانتینرها به سرعت فراگیر شد، به‌طوری که کانتینرها به یکی از پر کاربردترین فناوری‌های ابرمحور تبدیل شدند. مایکروسافت همراه با عرضه ویندوز سرور 2016، اولین گام‌ها برای پشتیبانی از کانتینرها را برداشت و فرمان‌های پاورشلی را برای کنترل و اجرای کانیتنرها در اختیار سرپرستان شبکه قرار داد، اما پلتفرم Docker سریع‌تر از آن چیزی که مایکروسافت انتظارش را داشت پیشرفت کرد، به‌گونه‌ای که هر کاربر دنیای فناوری تصمیم گرفته بود تا کانتینرها را روی ماشین ویندوز خود نصب کند و با داکر کار کند. اگر شما نیز علاقه‌مند به آزمایش کانتینرها روی دستگاه‌های خود هستید ابتدا باید داکر را روی ویندوز نصب کنید.

1606683296_1_0.gif

برای مطالعه قسمت قبل آموزش رایگان ویندوز سرور 2019 اینجا کلیک کنید. 

Docker و Kubernetes

داکر یک پروژه منبع باز و یک ابزار کاربردی است که ابتدا برای کمک به اجرای کانتینرها در سیستم‌عامل لینوکس به کار گرفته می‌شد، اما محبوبیت کانتینرها به سرعت فراگیر شد، به‌طوری که کانتینرها به یکی از پر کاربردترین فناوری‌های ابرمحور تبدیل شدند. مایکروسافت همراه با عرضه ویندوز سرور 2016، اولین گام‌ها برای پشتیبانی از کانتینرها را برداشت و فرمان‌های پاورشلی را برای کنترل و اجرای کانیتنرها در اختیار سرپرستان شبکه قرار داد، اما پلتفرم Docker سریع‌تر از آن چیزی که مایکروسافت انتظارش را داشت پیشرفت کرد، به‌گونه‌ای که هر کاربر دنیای فناوری تصمیم گرفته بود تا کانتینرها را روی ماشین ویندوز خود نصب کند و با داکر کار کند. اگر شما نیز علاقه‌مند به آزمایش کانتینرها روی دستگاه‌های خود هستید ابتدا باید داکر را روی ویندوز نصب کنید.

داکر یک سکو برای کانتینر‌ها است، به این معنا که دستورات و ابزارهای مورد نیاز برای بارگیری، ساخت، بسته‌بندی، توزیع و اجرای کانتینرها را فراهم می‌کند. داکر به‌طور کامل توسط ویندوز 10 و ویندوز سرور 2019 پشتیبانی می‌شود. با نصب داکر روی ویندوز، شما تمام ابزارهای مورد نیاز برای به‌کارگیری داکر و جداسازی و گسترش‌پذیری برنامه کاربردی خود را در اختیار دارید.

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

کانتینرهای لینوکس

زمانی‌که صحبت درباره قابلیت‌هایی است که ویندوز سرور 2019 برای تعامل با انواع مختلف کانیتنرها ارائه می‌کند، یک به‌روزرسانی اساسی وجود دارد که لازم است اطلاعاتی در مورد آن داشته باشید. پیش از این، یک سرور میزبان کانتینرهای ویندوزی در سرور 2016 تنها می‌توانست کانتینرهای ویندوز را اجرا کند، زیرا کانتینرهای ویندزو سرور هسته را با سیستم‌عامل میزبان به‌اشتراک قرار می‌داند و هیچ راهی برای اجرای کانتینرهای لینوکسی روی یک میزبان ویندوزی وجود نداشت. اکنون آن دوران سپری شده و با قابلیت‌های جدید سرور 2019 سروکار داریم که اجازه می‌دهند کانتینرهای لینوکسی را روی یک ماشین ویندوزی اجرا کنید. در حالی که این ویژگی‌ها هنوز هم به کار بیشتر نیاز دارند، اما برخی از قابلیت‌های جدید همچون Moby VM و LCOW اجازه می‌دهند تا کانتینرهای لینوکس را روی یک میزبان ویندوزی و در کنار کانتینرهای ویندوزی اجرا کرد. برای اطلاعات بیشتر در این خصوص به لینک linux-containers مراجعه کنید.

Docker Hub

هنگامی که با کانتینرها کار می‌کنید در حال ساخت ایمیج‌های کانتینری هستید که قابلیت اجرا روی سرورهایی را دارند که سیستم‌عامل یکسانی را میزبانی می‌کنند. زمانی که نمونه‌های جدیدی از کانتینرها ایجاد می‌کنید در حقیقت در حال کار با کپی‌های جدیدی از یک ایمیج هستید که به شکل انحصاری آماده شده است. این نوع از ایمیج‌سازی استاندارد یک پیام روشن به جامعه توسعه‌‌دهندگان منتقل می‌کند که امکان ساخت ایمیج‌ها و به‌اشتراک‌گذاری آن‌ها باعث می‌شود تا همه مردم به آن‌ها دسترسی داشته باشند. با توجه به این‌که داکر یک ابزار منبع باز است، منابع اشتراکی در نظر گرفته تا کاربران بتوانند ایمیج‌ها و کانتینرها را دانلود و آزمایش کنند یا ایمیج‌هایی که ایجاد کرده‌اند را آپلود و در اختیار کاربران قرار دهند. این منبع بزرگ Docker Hub نام دارد و از آدرس https://hub.docker.com قابل استفاده است. کافی است به سایت فوق مراجعه کنید و یک حساب کاربری بسازید تا دسترسی به هزارات ایمیج مبتنی بر کانتینر که توسط جامعه متخصصان ساخته و بارگذاری شده دسترسی پیدا کنید. راهکار فوق سریع‌ترین روشی است که اجازه می‌دهد با ساز و کار کانتینرها و ایمیج‌ها آشنا شوید و حتا برای کارهای حرفه‌ای یا اجرای نرم‌افزارها از آن‌ها استفاده کنید. شکل زیر صفحه اصلی Docker Hub را نشان می‌دهد.

پیشنهاد می‌کنم در سایت فوق یک حساب کاربری بسازید، زیرا در چند شماره آینده قصد داریم نحوه پیاده‌سازی یک کانتیر با داکر را آزمایش کنیم.

Docker Trusted Registry

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

این مکان اختصاصی و ایمن Docker Trusted Registry نام دارد. دارد. Docker Trusted Registry یک مخزن ذخیره‌سازی ایمیج کانتینر است که عملکردی مشابه با Docker Hub دارد، با این تفاوت که موجودیتی در اختیارتان قرار می‌دهد که اجازه می‌دهد آن‌را در پشت دیوارهای آتش و سامانه‌های ایمن قرار دهید. یک مکانیزم خوب که اجازه می‌دهد بدون به‌اشتراک‌گذاری اطلاعات حساس با سایر مردم ایمیج‌ها را به شکل خصوصی به‌اشتراک قرار دهید.

Kubernetes

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

کوبرتینس یک راه‌حل کانتینر-ارکستراسیون است. به عبارت دیگر، Kubernetes orchestrates ‌یا تسهیل‌کننده، نحوه اجرای کانتینر را تعریف می‌کند. کوبرتینس ابزاری است که بیشتر کانتینرها را قادر می‌سازد به شکل هماهنگ با یکدیگر اجرا شوند، به گونه‌ای که تصور می‌کنید یک برنامه بزرگ در حال اجرا است. اگر قصد استفاده از کانتینرها برای ساخت برنامه‌های گسترش‌پذیر را دارید که هر وقت به منابع اضافی نیاز داشته باشید به سراغ کانتینرها بروید، بدون تردید به راه‌کار container orchestrator نیاز دارید که کوبرتینس بهترین و محبوب‌تری ابزار در این زمینه است. مایکروسافت به خوبی از محبوبیت ابزار فوق آگاه شده و در ویندوز سرور 2019 به بهترین و کامل‌ترین شکل از کوبرتینس پشتیبانی به عمل آورده است.

همانند هر نرم‌افزار بزرگی، کوبرتینس تنها یک نام ساده نیست. لازم به توضیح است که داکر زیرساخت ارکستراسیون خاص خود به‌نام Docker Swarm را در اختیار دارد. منطقی به نظر می‌رسد که Docker و Docker Swarm بهتر از داکر و هر ارکسترساز دیگری با هم کار کنند، اما گزارشی که به تازگی منتشر شده نشان می‌دهد 82٪ از شرکت‌هایی که از برنامه‌های گسترش‌پذیر در ابر استفاده می‌کنند از کوبرتینس برای ارکستر کانتینرهای خود استفاده می‌کنند.

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

کار با کانتینرها

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

نصب نقش و ویژگی موردنیاز

حجم کاری که باید در این زمینه انجام دهید به به این موضوع بستگی دارد که در نظر داریم Windows Server Containers ، Hyper-V Containers یا هر دو را اجرا کنید. ویژگی اصلی که به آن احتیاج دارید Containers است که از طریق گزینه Add roles and features پنجره Server Manager یا از طریق اجرای فرمان پاورشل زیر قابل نصب است.

Add-WindowsFeature Containers

علاوه بر این، اگر قصد اجرای Hyper-V Containers را دارد، باید اطمینان حاصل کنید که مولفه‌های اصلی Hyper-V روی سرور میزبان کانتینرها نصب شده‌اند. برای انجام این کار باید Hyper-V role را همراه با ابزارهای مدیریتی لازم روی سرور نصب کنید. پس از نصب نقش‌های اشاره شد، باید سرور ا راه‌اندازی کنید تا تغییرات اعمال شوند.

در این مرحله، ممکن است این سوال پیش آید که اگر قرار است روی سرور میزبان کانتینر نقش Hyper-V را نصب کنیم، سرور نباید یک سرور فیزیکی باشد؟ ما نمی‌توانیم نقش Hyper-V را روی یک مجازی نصب کنیم، آیا این حرف صحیح است؟ خیر این حرف اشتباه است. ویندوز سرور 2019 از مفهومی به‌نام مجازی‌سازی متداخل پشتیبانی می‌کند که برای پشتیبانی بهتر از کانتینرها در نظر گرفته شده است. این روزها نیاز به سخت‌افزار فیزیکی به یک عامل محدود‌کننده در صنعت IT تبدیل شده است به همین دلیل است که ماشین‌های مجازی به میدان وارد شده‌اند. به همین دلیل است که شرکت‌ها تمایل دارند کانتینرها را نصب کنند، هرچند ممکن است سرورهای میزبان کانتینر ماشین‌های مجازی باشند که چند کانتینر در حال اجرا روی آن‌ها هستند. بنابراین‌، مجازی‌سازی متداخل به یک ضرورت تبدیل شده است. اگر یک سرور هایرویزور فیزیکی مبتنی بر ویندوز سرور 2019 را اجرا کنید و یک ماشین مجازی ویندوز سرور 2019 را روی سرور اجرا کنید، مشاهده می‌کنید که Hyper-V به درستی روی ماشین مجازی نصب می‌شود. هرچند این روزها ماشین‌های مجازی کاملا محبوب هستند و از آن‌ها برای اجرای سایر ماشین‌های مجازی استفاده می‌شود.

نصب Docker برای ویندوز

اکنون که سرور میزبان کانتینر آماده شده و مولفه‌های موردنیاز روی آن نصب شده‌اند، باید داکر مخصوص ویندوز را از اینترنت دانلود کنیم. رابط داکر تمام دستوراتی که در شماره‌های آینده و برای ساخت و برقراری ارتباط به آن‌ها نیاز داریم را در اختیارمان قرار می‌دهد.

در این‌جا نقش Docker Hub و پروفایلی که روی آن ساخته‌اید مهم می‌شود. اگر قصد دارید از Docker Hub برای آزمایش کانتینرها روی ایستگاه کاری خود استفاده کنید لازم است تا Docker Desktop for Windows را روی یک ماشین کلاینتی ویندوز 10 و از طریق Docker Hub نصب کنید. ساده‌ترین راه این است که به Docker Hub وارد شوید در سایت فوق در جست‌وجوی Docker clinet را جست‌وجو کنید. ابزار فوق برای نصب در ویندوز 10 در آدرس docker desktop windows قرار دارد. در اینجا پیوندی به آن نرم افزار وجود دارد (این ابزاری است که در صورت نصب در ویندوز 10 باید از آن استفاده کنید): https://hub.docker.com/editions/community/docker-ce-desktop-windows

در این‌جا باید به نکته مهمی دقت کنید. اگر مجوز سرور شما شامل Docker Enterprise می‌شود، نیازی به مراجعه به Docker Hub ندارید. در این سرورها کافی است پاورشل را باز کنید و دو فرمان زیر را روی سرور خود اجرا کنید.

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider -Force -RequiredVersion 18.03

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

Start-Service docker

دستورات داکر

پس از نصب Docker روی سیستم (ویندوز سرور 2019 یا ویندوز 10)، Docker Engine روی ماشین در وضعیت اجرا قرار می‌گیرد و آماده است تا فرمان‌هایی را برای کار با کانتینرها دریافت کند. فرمان‌های مختلفی برای کار با داکر وجود دارد که از مهم‌ترین آن‌ها به موارد زیر می‌توان اشاره کرد:

Docker --help

دستور فوق شبیه به docker /? است. تابع help فهرستی از دستورات داکر را ارائه می‌کند.

Docker images

پس از دانلود برخی از ایمیج‌های کانتینر از یک مخزن، می‌توانید از دستور docker images برای مشاهده تمام ایمیج‌های موجود در سیستم محلی استفاده کنید.

Docker search

تابع فوق اجازه می‌دهد جست‌وجویی در مخازن کانتیر (مانند Docker Hub) داشته باشید و ایمیج‌‌های کانتینر موردنیاز خود را پیدا کنید. به عنوان مثال، برای جست‌وجوی ایمیج‌هایی که توسط مایکروسافت درون مخزن این شرکت قرار گرفته باید از فرمان زیر استفاده کنید:

docker search Microsoft

docker pull

از دستور فوق برای دانلود ایمیج‌های کانتینر از مخازن آنلاین استفاده می‌کنیم. مخازن آنلاین مختلفی وجود دار که قادر به دانلود ایمیج‌های کانتینر از درون آن‌ها هستید. در بیشتر مواقع از ایمیج‌هایی که درون Docker Hub قرار دارند استفاده می‌کنیم، اما مخازن دیگری نیز وجود دارند که ایمیج‌های کانتینر خوبی دارند، مخزن MCR مایکروسافت یکی از این موارد است. در مثال زیر نحوه به‌کارگیری ساده فرمتن docker pull برای استخراج ایمیج‌های کانتینر از Docker Hub و MCR را مشاهده می‌کنید.

docker pull Microsoft\nanoserver
docker pull Microsoft\windowsservercore
docker image pull mcr.microsoft.com/windows/servercore:1809
docker image pull mcr.microsoft.com/windows/nanoserver:1809

در شماره آینده مبحث کانتینرها در ویندوز سرور 2019 را ادامه خواهیم داد.

برای مطالعه تمام بخش‌های آموزش ویندوز سرور 2019 روی لینک زیر کلیک کنید:

آموزش رایگان ویندوز سرور 2019

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟