در این مقاله قصد داریم در مورد داکر صحبت کنیم و ببینیم که داکر چیست. داکر یک ابزار تخصصی برای مجازیسازی لایههای سیستمعامل است که امکان توسعه و اجرای Application را با استفاده از کانتینرها فراهم میکند. داکر به شما این امکان را میدهد که برنامه تحت سرور خود را بهجای ماشین مجازی روی آن راهاندازی کنید. شما میتوانید از طریق هاست و یا سرور اختصاصی خود این کار را انجام دهید، یا حتی داکر را روی ویندوز نصب کنید. قبل از اینکه به بررسی خود داکر بپردازیم بهتر است کمی در مورد کانتینرها صحبت کنیم.
فهرست عناوین
کانتینر چیست؟
کانتینر یک واحد استاندارد است که هنگام ایجاد یک برنامه یا محیط خاص ایجاد میشود. این نگهدارنده میتواند یک ظرف اوبونتو، کانتینر Centos و یک ظرف برنامهمحور مانند ظرف CakePHP یا یک ظرف Tomcat-Ubuntu و غیره باشد. تا نیازها را از نظر سیستمعامل کاملاً پر کند.
بیایید آن را با یک مثال درک کنیم:
یک شرکت نیاز به توسعه یک برنامه جاوا دارد. بهمنظور انجام این کار، توسعهدهنده محیطی را نصب میکند که سرور tomcat در آن نصب شده باشد. هنگامی که برنامه توسعه یافت، باید توسط تستکننده آزمایش شود. اکنون آزمایشکننده دوباره محیط Tomcat را از ابتدا برای آزمایش برنامه تنظیم میکند. پس از انجام آزمایش، برنامه در سرور تولید مستقر میشود. باز هم تولید به محیطی نیاز دارد که تامکت روی آن نصب شده باشد، تا بتواند میزبان برنامه جاوا باشد. میبینید که همان تنظیمات تامکت سه بار انجام میشود. در این روش مشکلاتی پیش میآید مانند:
- اتلاف وقت و تلاش که یک گزینه قابلتأمل است. چون همه به دنبال استفاده بهینه از زمان هستند پس این گزینه مشکلساز میباشد.
- ممکن است در تنظیمات مختلف عدم تطابق نسخه وجود داشته باشد، یعنی ممکن است توسعهدهنده و آزمایشکننده Tomcat 7 را نصب کرده باشد، بااینحال مدیر سیستم Tomcat 9 را بر روی سرور تولید نصب کرده است.
میتوان از ظرف داکر برای جلوگیری از این ضرر استفاده کرد. در این حالت، توسعهدهنده با استفاده از یک تصویر پایه مانند اوبونتو، که از قبل در Docker Hub وجود دارد یک ایمیج docker ایجاد میکند. Hub دارای برخی از ایمیجهای پایه است که بهصورت رایگان در دسترس قرار دارند. اکنون این ایمیج توسط توسعهدهنده، آزمایشکننده و مدیر سیستم برای استقرار در محیط تامکت مورداستفاده قرار میگیرد.
داکر چیست؟
به زبان ساده، Docker یک فناوری متنباز است که بیشتر برای توسعه، حملونقل و اجرای برنامهها استفاده میشود. با استفاده از آن میتوانید برنامهها را از زیرساختهای اصلی آنها جدا کنید تا تحویل نرمافزار سریعتر از همیشه انجام شود. مزیت اصلی Docker بستهبندی برنامههای کاربردی در «کانتینرها» است بنابراین برای هر سیستمی که از سیستمعامل لینوکس یا سیستمعامل ویندوز استفاده میکند قابلِحمل هستند.
هنگامی که یک برنامه و تمام وابستگیهای آن را در یک ظرف اجرای Docker بستهبندی میکنید، اطمینان حاصل خواهید کرد که در هر محیطی اجرا میشود. همچنین، متخصصان DevOps میتوانند برنامههایی را با Docker بسازند و اطمینان حاصل کنند که هیچ تداخلی با یکدیگر نخواهند داشت. در نتیجه، شما یک کانتینر میسازید که برنامههای مختلفی روی آن نصب شده باشد و آن را به تیم QA خود میدهید، در این صورت فقط برای تکثیر محیط شما باید کانتینر را اجرا کنید بنابراین استفاده از ابزار Docker باعث صرفهجویی در وقت میشود. علاوه بر این، برخلاف استفاده از ماشینهای مجازی (VM)، لازم نیست نگران باشید که از چه پلتفرمی استفاده میکنید زیرا ظروف داکر در همهجا کار میکنند.
تفاوت ماشین مجازی با داکر چیست؟
Docker ابزاری است که برای سهولت در ایجاد، استقرار و اجرای برنامهها با استفاده از کانتینرها طراحی شده است. کانتینرها به یک توسعهدهنده این امکان را میدهند تا برنامهای را با تمام قسمتهای موردنیاز خود مانند کتابخانهها و سایر وابستگیها بستهبندی کرده و بهصورت یک بسته مستقر کند. با این کار، به لطف ظرف، توسعهدهنده میتواند مطمئن باشد که برنامه بدون درنظرگرفتن تنظیمات سفارشی که ماشین مجازی ممکن است داشته باشد و با ماشین مجازی مورداستفاده برای نوشتن و تست کد متفاوت باشد، روی هر ماشین مجازی Linux دیگری اجرا میشود.
دلیل استفاده از داکر چیست؟
داکر استفاده از فناوری ظرفسازی لینوکس را آسان کرده است. در واقع داکر از نظر کاربران بسیار عالی است. دلایل بسیاری برای استفاده از داکر وجود دارد. در اینجا به مهمترین دلایل استفاده از داکر میپردازیم:
- ثبات و سازگاری: منظور از سازگاری این است که Docker یک محیط سازگار برای برنامه شما از طریق توسعه از طریق تولید را فراهم میکند و شما هر بار از همان نقطه شروع به کار میکنید.
- سرعت: منظور از سرعت، این است که شما میتوانید بهسرعت یک فرایند جدید را روی سرور اجرا کنید. ازآنجاکه تصویر با فرایندی که میخواهید اجرا کنید از قبل پیکربندی و نصب شده است، اجرای فرایندی از معادله را به چالش میکشد.
- انزوا: منظور از انزوا این است که به طور پیشفرض هر ظرف داکر در حال اجرا از شبکه، سیستم فایل و سایر فرایندهای در حال اجرا جدا شده است.
- فایل لایهای: دلیل چهارم این است که سیستم Docker فایل لایهای است. با شروع از یک تصویر پایه، هر تغییری که در یک ظرف یا تصویر ایجاد میکنید، به یک لایه جدید در سیستم فایل تبدیل میشود. در نتیجه لایههای سیستم فایل در حافظه پنهان میشوند، تعداد مراحل تکراری در طول روند ساخت Docker کاهش مییابد و مدتزمان بارگذاری و بارگیری تصاویر مشابه کاهش مییابد.
- ذخیرهسازی حالت: همچنین اگر برای از کار افتادن یک کانتینر به عیبیابی نیاز دارید، میتوانید حالت ظرف را ذخیره کنید. لایههای سیستم فایل مانند Git اما در سطح سیستم فایل هستند. هر تصویر Docker ترکیبی خاص از لایهها است.
مزایای استفاده از داکر چیست؟
بازگشت سرمایه و پسانداز هزینه
بازگشت سرمایه و هزینه پایین اولین مزیت استفاده از docker است. بزرگترین عامل اصلی تصمیمات مدیریتی هنگام انتخاب محصول جدید، بازگشت سرمایه است. هر چه یک راهحل بیشتر بتواند ضمن افزایش سود باعث کاهش هزینه شود، راهحل بهتری برای آن است. خصوصاً برای شرکتهای بزرگ و مستقر که نیاز به درآمدزایی مداوم در طولانیمدت دارند.
از این نظر داکر میتواند با کاهش چشمگیر منابع زیرساخت به تسهیل این نوع پسانداز کمک کند. ماهیت Docker این است که برای اجرای همان برنامه منابع کمتری لازم است. به دلیل نیازهای زیرساختی کاهشیافته Docker، سازمانها قادر به صرفهجویی در هزینهها از سرور گرفته تا کارمندان موردنیاز برای نگهداری آنها هستند. داکر به تیمهای مهندسی اجازه میدهد تا کوچکتر و موثرتر باشند.
استقرار سریع برنامه
کانتینرها شامل حداقل نیازهای زمان اجرای برنامه هستند، اندازه آنها را کاهش میدهد و به آنها اجازه میدهد تا بهسرعت مستقر شوند.
قابلیت جابهجایی در بین ماشینها
یک برنامه کاربردی و تمام وابستگیهای آن را میتوان به یک کانتینر واحد و مستقل از نسخه میزبان هسته لینوکس، توزیع پلتفرم یا مدل استقرار متصل کرد. این کانتینر را میشود به ماشین مجازی دیگری که Docker را اجرا میکند منتقل کرد و در آنجا بدون مشکلات سازگاری اجرا کرد.
کنترل نسخه و استفاده مجدد از مؤلفهها
میتوانید نسخههای متوالی یک ظرف را ردیابی و اختلافات را بازبینی کنید یا دوباره به نسخههای قبلی برگردید. کانتینرها از اجزای موجود در لایههای قبلی مجدداً استفاده میکنند که باعث میشود وزن آنها به طرز محسوسی سبک شود.
اشتراکگذاری
از یک مخزن راه دور استفاده کنید تا کانتینر خود را با دیگران به اشتراک بگذارید. Red Hat رجیستری را برای این منظور فراهم میکند و همچنین میتوانید مخزن خصوصی خود را پیکربندی کنید.
حجم و سرعت
تصاویر داکر به طور معمول بسیار کوچک هستند که تحویل را سریع میکند و زمان استقرار ظروف برنامه جدید را کاهش میدهد.
تعمیر و نگهداری ساده
Docker تلاش و خطر ابتلا به مشکلات وابستگی به برنامه را کاهش میدهد.
دلیل یادگیری داکر چیست؟
بدیهی است که داکر ابزار پراهمیتی است و استفاده از آن در بازار کار باورنکردنی است. همانطور که میدانید شغلهای موجود در دنیا بهطوری باورنکردنی درحالرشد هستند. با ارتباط هرچه بیشتر ابر و داکر، این تقاضا فقط رشد خواهد کرد بنابراین شما باید یک ابزار Docker داشته باشید تا آیندهای تضمینشده در این زمینه داشته باشید.
حتماً فهمیدهاید که یادگیری Docker آسان است. شما میتوانید با اصول شروع کنید و یاد بگیرید که چگونه با استفاده از Docker Compose، محیط برنامههای انعطافپذیر خود را ایجاد کنید. همچنین میتوانید سایت وردپرس خود را با Docker ایجاد کنید و از جمله موارد دیگر محیط برنامههای چندظرفیتی را تعریف کنید.
شرایط امنیتی داکر چیست؟
Docker امنیت برنامههای در حال اجرا را در یک محیط مشترک به ارمغان میآورد اما کانتینرها بهخودیخود گزینهای برای انجام اقدامات امنیتی مناسب نیستند. در بیشتر مواقع برای ایجاد ارتباط با داکر از پروتکل tcp استفاده میشود اما این امنیت آن را به خطر میاندازد.
برای حفظ امنیت و ایجاد ارتباط از راه دور با Daemon از پروتکل SSH استفاده کنید که هم امنیت را فراهم میکند و هم با ابزارهای مختلف میتوان کاربرانی که ssh میزنند را مانیتور و لاگ کرد.
نصب و راهاندازی Docker Desktop برای ویندوز ۱۰
برای دانلود داکر دسکتاپ به سایت www.docker.com مراجعه نمایید و متناسب با نیاز خود آن را دانلود و نصب کنید. توجه کنید که اگر در دانلود آن با خطا مواجه شدید میتوانید از روش زیر IP خود را تغییر دهید تا بتوانید در صورت تحریم، برنامه را دانلود نمایید.
- وارد کنترل پنل شوید.
- روی گزینه Network and Internet کلیک کنید.
- سپس گزینه Network and sharing center را انتخاب نمایید.
- در سمت چپ صفحه باز شده Change adapter settings را انتخاب کنید.
- در این بخش روی شبکه خود راست کلیک کنید.
- گزینه Properties را بزنید.
- و سپس Internet Protocol Version 4 (TCP/IPv4) را انتخاب نمایید.
- حالا Properties را بزنید.
- بر روی گزینه Use the following DNS server addresses کلیک کنید.
- لازم است IP جدید را در خانههای آن بنویسید
- حالا میشود از سایت داکر، داکر ویندوز را دانلود نمایید.
پس از نصب برنامه، Docker Desktop را شروع کنید برای شروع، Docker را در نوار جستجو پیدا کنید. وقتی نماد نهنگ در نوار وضعیت ثابت بماند، Docker Desktop فعال و قابلدسترسی است. اگر نماد نهنگ در قسمت اعلانها پنهان است، روی فلش روبهبالا در نوار وظیفه کلیک کنید تا نشان داده شود. برای کسب اطلاعات بیشتر، به تنظیمات Docker مراجعه کنید. تبریک میگویم! اکنون شما با موفقیت Docker Desktop را روی ویندوز اجرا کردید.
تنظیمات نسخه ویندوزی داکر چیست؟
تنظیمات (Settings):
منوی Docker Desktop به شما امکان میدهد تنظیمات Docker خود را مانند نصب، بهروزرسانیها، چنلهای ورژن، ورود به سیستم Docker Hub و موارد دیگر را پیکربندی کنید.
- این بخش گزینههای پیکربندی قابلدسترسی از گفتگوی تنظیمات را توضیح میدهد.
- با کلیک کردن روی نماد Docker در قسمت Notifications منوی Docker Desktop را باز کنید.
- برای باز کردن گفتگوی تنظیمات، تنظیمات را انتخاب کنید.
عمومی (General):
در برگه عمومی گفتگوی تنظیمات، میتوانید:
- زمان شروع و بهروزرسانی Docker را پیکربندی کنید.
- هنگام ورود به سیستم Docker را شروع کنید. برای این کار پس از ورود به سیستم Windows به طور خودکار Docker Desktop را شروع کنید.
- Exam daemon on TCP: // localhost: 2375 without TLS: برای فعال کردن کلاینتهای قدیمی و اتصال به daemon Docker، روی این گزینه کلیک کنید. شما باید بااحتیاط از این گزینه استفاده کنید زیرا افشای daemon بدون TLS میتواند منجر به حملات اجرای کد از راه دور شود.
- ارسال آمار استفاده: به طور پیشفرض، Docker Desktop تشخیص گزارش خرابی و دادههای استفاده شده را ارسال میکند. این اطلاعات به داکر کمک میکند تا برنامه را بهبود بخشد و عیبیابی کند. برای انصراف کادر انتخاب را پاک کنید. داکر ممکن است بهصورت دورهای برای کسب اطلاعات بیشتر از شما درخواست کند.
منابع Resources:
تب Resources به شما امکان میدهد CPU، حافظه، دیسک، پروکسیها، شبکه و سایر منابع را پیکربندی کنید. بسته به اینکه از پکیج لینوکس در حالت WSL 2، پکیج لینوکس در حالت Hyper-V یا پکیج ویندوز استفاده میکنید، تنظیمات مختلفی برای پیکربندی در دسترس است.
پیشرفته Advanced:
برای محدود کردن منابع موجود در Docker از برگه Advanced استفاده کنید.
- پردازندهها: به طور پیشفرض Docker Desktop قرار است نیمی از پردازندههای موجود در دستگاه میزبان را استفاده کند. برای افزایش قدرت پردازش، این المان را روی عدد بالاتر تنظیم کنید. همینطور میتوانید برای کاهش، تعداد را کم کنید.
- حافظه: به طور پیشفرض Docker Desktop برای استفاده از ۲ گیگابایت حافظه زمان اجرا اختصاص داده شده از کل حافظه موجود در دستگاه شما تنظیم شده است. برای افزایش RAM، این را روی عدد بالاتر تنظیم کنید و برای کاهش آن، عدد را کم کنید.
- Swap: در صورت لزوم اندازه پرونده swap را پیکربندی کنید. پیشفرض ۱ گیگابایت است.
- اندازه تصویر دیسک: میتوانید با این گزینه اندازه تصویر دیسک را مشخص کنید.
- مکان تصویر دیسک: مکان حجم Linux را که در آن ظروف و تصاویر ذخیره میشود، مشخص کنید.
همچنین میتوانید تصویر دیسک را به مکان دیگری منتقل کنید. اگر میخواهید یک تصویر دیسک را به مکانی که قبلاً وجود دارد منتقل کنید، با یک سوال مواجه میشوید که آیا میخواهید از تصویر موجود استفاده کنید یا آن را جایگزین کنید.
به اشتراکگذاری فایل File sharing:
برای به اشتراک گذاشتن فهرستهای محلی در ویندوز با ظروف لینوکس، از اشتراکگذاری فایل استفاده کنید. این امر بهویژه برای ویرایش کد منبع در IDE میزبان هنگام اجرای و آزمایش کد در یک ظرف مفید است. توجه داشته باشید که پیکربندی اشتراک فایل برای ظروف ویندوز ضروری نیست، فقط ظرفهای لینوکس است. اگر پوشهای با یک ظرف لینوکس به اشتراک گذاشته نشود، ممکن است فایل پیدا نشود یا نتوانید خطاهای سرویس را در زمان اجرا شروع کنید. مشاهده نصب ولوم به پوشههای اشتراکی برای Linux نیاز دارد.
سخن پایانی
در این مطلب با بررسی اینکه داکر چیست و چه قابلیتهایی دارد و همینطور مزایای داکر به چه صورتاند و قابلیتهای ویندوزی داکر چیست با شما همراه بودیم. بنا بر آنچه گفته شد Docker یک بستر کانتینرسازی است که برنامه شما و تمام وابستگیهای آن را بهصورت یک پکیج docker بستهبندی میکند تا اطمینان حاصل شود که برنامه شما در هر محیطی به طور یکپارچه کار میکند. در این مقاله به طور کامل نحوه نصب و تنظیمات آن را گفتیم امیدواریم از این آموزش کاربردی لذت برده باشید.