آموزش داکر (Docker)

دسته بندی: فریمورک ها

آموزش داکر

در این صفحه می خوانید ؟

معرفی داکر (Docker)

Docker مجموعه ای از محصولاتی پلتفرم به عنوان سرویس (PaaS) است که از مجازی سازی سطح سیستم عامل برای ارائه نرم افزار در بسته هایی به نام کانتینر استفاده می کنند. کانتینرها از یکدیگر جدا شده و نرم افزار، کتابخانه ها و فایل های پیکربندی خود را بسته بندی می کنند. آنها می توانند از طریق کانال های کاملاً مشخص با یکدیگر ارتباط برقرار کنند. تمام کانتینرها توسط یک هسته سیستم عامل کار می کنند و بنابراین از منابع کمتری نسبت به ماشین های مجازی استفاده می کنند.

این سرویس دارای دو پلن رایگان و پریمیوم است. نرم افزاری که میزبان کانتینر است، Docker Engine نامیده می شود. اولین بار در سال 2013 شروع به کار کرده و توسط Docker، Inc توسعه داده شده است.

هر برنامه ای در قالب کانتینر باید محیطی برای اجرای سخت افزار و سیستم عامل داشته باشد. داکر یک پلتفرم اوپن سورس است که با ساخت Container امکان داشتن محیطی برای توسعه نرم افزار فراهم می کند. امکان استفاده از کرنل سیستم عاملی که بر روی نرم افزار نصب شده را مهیا می سازد و در نتیجه سبک تر از ماشین های مجازی می باشد. داکر برنامه کامپیوتری است که مجازی سازی در سطح سیستم عامل را انجام می دهد، همچنین به عنوان "containerization" شناخته می شود.

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

تاریخچه داکر (Docker)

داکر برای اولین بار در سال 2010 به عنوان یک شرکت سرویس پلتفرم به نام dotCloud توسط Solomon Hykes و Sebastien Pahl شروع به کار کرد و در سال 2011 به بهره برداری رسید. Solomon Hykes داکر را در فرانسه به عنوان یک پروژه داخلی در dotCloud شروع کرد. داکر نشان دهنده تکامل تکنولوژی انحصاری dotCloud است که خود بر روی پروژه های پیشین مانند Cloudlets ساخته شده است. Docker به عنوان نرم افزار اوپن سورس در مارس 2013 منتشر شد. در تاریخ 13 مارس 2014، با انتشار نسخه 0.9، Docker LXC را به عنوان محیط اجرای پیش فرض رها کرد و آن را با کتابخانه libcontainer خود که در زبان برنامه نویسی گو (GO) نوشته شده است جایگزین کرد.

کاتینر (Container) چیست؟

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

تصاویر کانتینر در زمان اجرا و در مورد کانتینرهای Docker به کانتینر تبدیل می شوند - ایمیج وقتی روی موتور Docker کار می کنند به ظرف تبدیل می شوند. برای هر دو برنامه لینوکس و مبتنی بر ویندوز، نرم افزارهای کانتینر دار بدون در نظر گرفتن زیرساخت ها همیشه یکسان اجرا می شوند. کانتینرها نرم افزار را از محیط خود جدا کرده و اطمینان حاصل می کنند که علی رغم اختلافات بین توسعه و مرحله بندی، به طور یکنواخت کار می کند.

کانتینرهای docker که با موتور docker کار می کنند:

  • استاندارد: داکر استاندارد صنعتی را برای ظروف ایجاد کرد، بنابراین می توانند در هر مکان قابل حمل باشند
  • سبک وزن: کانتینرها از هسته سیستم عامل دستگاه مشترک هستند و بنابراین برای هر برنامه نیازی به سیستم عامل ندارند، که باعث افزایش کارایی سرور و کاهش هزینه های سرور و صدور مجوز می شود.
  • امن: برنامه ها در ظروف ایمن تر هستند و Docker قوی ترین قابلیت انزوا پیش فرض را در صنعت فراهم می کند

کوبرنتیز (Kubernetes) چیست؟

Kubernetes یک سیستم ارکستراسیون منبع باز برای خودکار کردن مدیریت، قرار دادن، مقیاس گذاری و مسیریابی کانتینرهایی است که در سال های اخیر مورد توجه توسعه دهندگان و تیم های عملیاتی فناوری اطلاعات قرار گرفته است. این اولین بار توسط گوگل توسعه داده شد و در سال 2014 به Open Source کمک کرد و اکنون توسط بنیاد رایانش ابری Cloud نگهداری می شود. یک جامعه و اکوسیستم Kubernetes فعال در اطراف Kubernetes با هزاران نفر از همکاران و ده ها نفر از شرکای مجاز در حال توسعه است.

Kubernetes به پلت فرم استاندارد ارکستراسیون کانتینرها تبدیل شده است. تمام ارائه دهندگان اصلی ابر از آن پشتیبانی می کنند، و این گزینه منطقی برای سازمان هایی است که به دنبال انتقال برنامه های بیشتر به ابر هستند. Kubernetes یک فریمورک مشترک برای اجرای سیستم های توزیع شده ارائه می دهد تا تیم های توسعه زیرساخت های ثابت و غیر قابل تغییر از توسعه تا تولید برای هر پروژه داشته باشند. Kubernetes می تواند نیازهای مقیاس بندی، در دسترس بودن، خرابی سیستم، الگوهای استقرار و موارد دیگر را مدیریت کند.

قابلیت های Kubernetes عبارتند از:

  • خدمات و تعریف فرآیند
  • کشف خدمات و توازن بار
  • ارکستراسیون ذخیره سازی
  • مدیریت منابع در سطح کانتینر
  • استقرار و بازگشت خودکار
  • مدیریت بهداشتی کانتینر
  • اسرار و مدیریت پیکربندی

اجزای تشکیل دهنده داکر (Docker)

داکر به عنوان یک سرویس ارائه خدمات شامل سه قسمت است:

  • نرم افزار

Docker daemon که dockerd نامیده می شود، یک فرایند مداوم است که کانتینرهای داکر و اشیاء کانتینر را مدیریت می کند. این سرویس برای درخواست های فرستاده شده از طریق API Docker Engine گوش می دهد. برنامه کلاینت که Docker نامیده می شود رابط کاربری خط فرمان را فراهم می کند و به کاربران اجازه می دهد با Docker daemon ارتباط برقرار کنند.

  • اشیا

اشیا داکر، اجزای مختلفی هستند که برای گرد آوری یک برنامه در Docker استفاده می شوند. کلاس های اصلی اشیاء Docker عبارتند از: ایمیج ها، کانتینر ها و سرویس ها. کانتینر Docker یک محیط استاندارد و محصور شده است که برنامه ها را اجرا می کند. ایمیج Docker یک قالب فقط خواندنی است که برای ساختن کانتینر استفاده می شود. ایمیج برای ذخیره و ارسال برنامه ها مورد استفاده قرار می گیرند. سرویس Docker اجازه می دهد تا کانتینر در چندین Daemon Docker مقیاس شود. این نتیجه که به عنوان یک گروه شناخته می شود، مجموعه ای از همکاری Daemons ها است که از طریق API Docker ارتباط برقرار می کنند.

  • ریجستری

داکر رجیستری یک مخزن برای ایمیج های داکر است. کلاینت های داکر برای ثبت ایمیج ها برای دانلود از "pull" و برای استفاده یا آپلود از "push" ایمیج هایی که ساخته شده اند،به رجیستری متصل می شوند. رجیستری می تواند عمومی یا خصوصی باشد. دو رجیستر اصلی عمومی Docker Hub و Docker Cloud هستند.

ویژگی های داکر (Docker)

تکنولوژی Docker منحصر به فرد است زیرا بر نیازهای توسعه دهندگان و اپراتورهای سیستم تاکید می کند تا وابستگی های برنامه را از زیرساخت جدا کند. Docker یک ماشین مجازی(VM) نیست. کانتینر Docker، بر خلاف ماشین مجازی، نیازی به سیستم عامل خاصی ندارد، در عوض به عملکرد هسته متکی است و از انزوای منابع برای CPU و حافظه استفاده می کند و فضای نام جداگانه را برای جدا کردن دیدگاه برنامه از سیستم عامل اعمال می کند. بر اساس توضیحات کوتاه بالا، تصویر زیر یک مقایسه بین ماشین های مجازی و کانتینر Docker را نشان می دهد.

ویژگی داکر

از دیگر مزایای استفاده از داکر می توان به موارد زیر اشاره کرد:

  • ساخت و حذف سریع Container ها
  • تسریع در ریستارت و خاموش کردن
  • انتقال پذیری آسان
  • مدیریت منابع و ریسورس ها

مقایسه داکر (Docker) با ماشین مجازی (VM)

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

  • کانتینر

کانتینرها انتزاعی در لایه برنامه هستند که کد و وابستگی ها را با هم بسته بندی می کنند. چندین کانتینر می توانند روی یک ماشین اجرا شوند و هسته سیستم عامل را با ظروف دیگر به اشتراک بگذارند، هر کدام به صورت فرآیندهای جداگانه در فضای کاربر اجرا می شوند. ظروف نسبت به ماشین های مجازی فضای کمتری را اشغال می کنند (اندازه کانتینرها معمولاً ده ها مگابایت است)، می توانند از پس برنامه های بیشتری برآیند و به ماشین های مجازی و سیستم عامل کمتری نیاز دارند.

  • ماشین های مجازی

ماشین های مجازی (VM) انتزاعی از سخت افزار فیزیکی است که یک سرور را به بسیاری از سرورها تبدیل می کند. hypervisor به چندین ماشین مجازی اجازه می دهد تا روی یک ماشین کار کنند. هر ماشین مجازی شامل یک کپی کامل از یک سیستم عامل، برنامه، باینری های لازم و کتابخانه ها است - ده ها گیگابایت را اشغال می کند. همچنین بوت شدن ماشین های مجازی ممکن است کند باشد.

آیا این نوشته را دوست داشتید؟
packt-develop-and-deploy-modern-web-applications-with-docker

توسعه و استقرار وب اپلیکیشن های مدرن با Docker


این دوره به شما کمک می کند تا برنامه های خود را کانتینر کنید. شما قادر خواهید بود بدون مسدود کردن کاربران نهایی خود در رابط کاربری رابط کاربری، بر روی...

1400/03/28 236 بازدید
packt-docker-tips-tricks-and-techniques

آموزش Docker: تکنیک ها، ترفندها و نکات


این دوره به شما فرصت های جدیدی می دهد تا از Docker بهترین بهره را ببرید و مجموعه مهارت های خود را افزایش دهید. این دوره جنبه های اصلی Docker را بررسی ...

1400/03/19 663 بازدید
the-ultimate-docker-course

دوره جامع داکر Code with Mosh


هر آنچه برای تسلط بر داکر در یک دوره واضح، مختصر و کاربردی نیاز دارید این یک دوره جامع، کاملاً کاربردی و کاملاً ساختاریافته که شما را از مبتدی مطلق به...

1400/02/02 5195 بازدید زیرنویس دارد
pluralsight-securing-the-docker-platform

آموزش ایمن سازی Docker Platform


کانتینرهای داکر به عنوان ابزار توزیع برای سرویس های اپلیکیشن Cloud Native مورد استفاده قرار می گیرند. در این دوره، شما مهم ترین ابعاد امنیتی مرتبط با ...

1400/01/26 710 بازدید
linkedin-using-docker-and-net-core

آموزش استفاده از Docker و NET Core.


در این دوره، Shayne Boyer و Lisa Guthrie با اصول اولیه Docker شروع به کار می کنند، مفاهیم و کاربردهای عملی را بررسی می کنند، سپس به یکپارچه سازی Docke...

1399/12/17 1075 بازدید
pluralsight-open-source-security-vulnerabilities-in-containers-codemash

آسیب پذیری های امنیتی متن باز در کانتینرها: CodeMash


شما آن طرف آسیب پذیری های سیستم عامل مانده اید و مرتباً در حال پَچ کردن هستید. آیا تا به حال به این فکر کرده اید که شاید آسیب پذیری ها در کانتینرهای ش...

1399/12/14 462 بازدید
pluralsight-using-declarative-jenkins-pipelines

استفاده از پایپ لاین های اعلانی Jenkins


در این دوره، نحوه استفاده از پایپ لاین ها و نحوه نگهداری آن ها از راه اندازی Jenkins را یاد خواهید گرفت. ابتدا مبانی پایپ لاین، نحوه ساختاردهی jobs و ...

1399/12/01 826 بازدید زیرنویس دارد
pluralsight-building-a-deployment-pipeline-for-asp-net-core-with-docker

آموزش ساخت یک پایپ لاین استقرار برای ASP.NET Core با داکر


در این دوره، شما یک پایپ لاین برای ساخت، تست واحد، و پکیج بندی اپلیکیشن ASP.NET Core را در یک ایمیج راه اندازی خواهید کرد. پایپ لاین هر زمان که کنترل ...

1399/11/09 1140 بازدید
pluralsight-using-docker-on-aws-with-the-command-line

استفاده از Docker روی AWS با خط فرمان


در این دوره، به سرعت اصول اولیه Docker را مرور خواهید کرد. سپس می توانید از چند ابزار قدرتمند رابط خط فرمان (AWS CLI ،docker ،ecs-cli ،eksctl و kubect...

1399/09/01 1032 بازدید
pluralsight-docker-and-kubernetes-the-big-picture

آموزش Kubernetes و داکر - The Big Picture


شما در این دوره، با اصول Docker و Kubernetes آشنا خواهید شد. ابتدا، مبانی کانتینر و این که چگونه می تواند طرح های اپلیکیشن ابر نیتیو را فعال کند را یا...

1399/06/20 7478 بازدید
linkedin-docker-on-aws

آموزش Docker در AWS


در این دوره، Robert Starmer نحوه استفاده از Docker و ویژگی های قدرتمند آن در AWS را برای ساخت و مدیریت اپلیکیشن های مبتنی بر کانتینر نشان می دهد. بیام...

1399/05/23 1837 بازدید زیرنویس دارد
linkedin-aws-devops-continuous-docker-deployment-to-aws-fargate-from-gitlab

آموزش AWS DevOps: استقرار مداوم Docker در AWS Fargate از GitLab


مدرس Jeremy “JV” Villeneuve ابتدا نحوه نصب و پیکربندی GitLab را با استفاده از تصویر رسمی Docker و نگهداری GitLab از طریق پشتیبان گیری و ارتقاء خودکار ...

1399/04/11 1903 بازدید زیرنویس دارد
linkedin-docker-for-data-scientists

آموزش Docker برای دانشمندان داده


در این دوره، Jonathan Fernandes به دانشمندان داده کمک میکند چگونه Docker را اجرا و چطور یک اپلیکیشن Dockerized ML که به راحتی قابل اشتراک است را ایجاد...

1399/04/06 3207 بازدید زیرنویس دارد
linkedin-docker-essential-training-1-installation-and-configuration

آموزش اساسی Docker: بخش 1 - نصب و پیکربندی


این دوره همه ی چیزهایی که برای نصب و پیکربندی Docker در Mac ،Windows ،Linux و همچنین محیط های مبتنی بر ابر مانند سرویس های وب آمازون باید بدانید را پو...

1399/02/04 5065 بازدید
linkedin-cloud-native-development-with-node-js-docker-and-kubernetes

توسعه ابر نیتیو با Node.js ،Docker و Kubernetes


در حالی که اکثریت قریب به اتفاق برنامه های Node.js در ابر مستقر شده و اجرا می شوند، تعداد کمی از آن ها از آنچه که پلتفرم های رایانش ابری مدرن ارائه می...

1398/12/06 4860 بازدید زیرنویس دارد
teamtreehouse-introduction-to-docker

آشنایی با داکر


داکر اجازه می دهد تا هر توسعه دهنده ای با هر زبانی بتواند یک اپلیکیشن را درون یک کانتینر، مانند یک کانتینر حمل و نقل بسته بندی کند. این دوره به شما نش...

1398/11/07 6501 بازدید
packtpub-containerization-the-kubernetes-way-video

کانتینر کردن با روش Kubernetes [ویدئویی]


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

1398/08/11 3270 بازدید
infiniteskills-building-microservice-systems-with-docker-and-kubernetes

ساخت سیستم‌های میکرو سرویس با داکر و کوبرنتیز


در این دوره با نحوه ساخت سیستم‌های میکرو سرویس میزبانی شده با Kubernete، تنظیم‌های پایگاه داده، مسیریابی درخواست و load balancing، مقیاس پذیری و موارد...

1398/06/24 9998 بازدید
pluralsight-handling-data-and-stateful-applications-in-docker

اداره داده و برنامه‌های Stateful در داکر (Docker)


در این دوره شما درکی از نحوه مدیریت داده برنامه در کانتینر ها که می توانند درهر جایی اجرا شوند، کسب خواهید کرد. شما درباره container filesystem، داده‌...

1398/06/21 2740 بازدید
packtpub-hands-on-microservices-with-python

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


در این دوره با موضوعاتی از قبیل مدل سازی داده، ذخیره سازی داده، نوشتن درخواست های API آشنا می شوید و ایمن سازی، نظارت و مقیاس گذاری میکرو سرویس های خو...

1398/05/28 9223 بازدید