داکر (Docker) چیست؟ آشنایی با مفهوم Container

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

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

به عبارت دیگر Container ها محیط و پکیج های مورد نیاز برای اجرای برنامه ها به عنوان مثال Libraries را در اختیار توسعه دهندگان قرار داده و توسعه دهندگان می توانند برنامه های خود را سریع تر و راحت تر اجرا ، تست و منتشر نمایند.بنابراین توسعه دهندگان توسط داکر و مفهوم Container ها میتوانند بستری را برای اجرا ، تست و توسعه برنامه ها و در نهایت انتشار آن در اختیار داشته باشند.


Docker

داکر از شعار Build any app ، Ship any where ، Run any where برای محصول خود استفاده می نماید و به این معنی هست که شما با استفاده از داکر هر برنامه ای که خواستید ایجاد نمایید سپس آن را به هر جایی که خواستید منتقل نمایید و در نهایت هم از هر جایی که خواستید آن را اجرا نمایید.همانطور که عنوان شد یک Container یک بسته سبک و مستقل شامل محیط و پکیج های مورد نیاز برای اجرای یک اپلیکیشن می باشد. یک Container شامل :

  • system libraries
  • system tools
  • Settings

و غیره می باشد.


Docker2

Docker Image چیست ؟

یک dokcer image شامل محیط و پکیج های مورد نیاز برای اجرا اپلیکیشن ها می باشد.زمانی که یک image را اجرا می نماییم یک instance تحت عنوان Container از image اجرا می شود.بنابراین یک Container یک instance از اجرای یک image می باشد.

داکر ( Docker ) چیست؟
  • نکته 1 : Docker image حاوی کرنلی نمی باشد و زمانی که اجرا می شود از کرنل Host استفاده می نماید.Host سیستمی هست که برنامه Docker را بر روی آن نصب نموده ایم.بنابراین زمانی که imageی اجرا و یک instance هم تحت عنوان Container از آن اجرا می شود از کرنل Host استفاده می نماید.Docker بر روی سیستم عامل های لینوکس ، ویندوز و Mac قابل نصب می باشد.
  • نکته 2 : Docker مبتنی بر ( Linux Containers ( LXCمی باشد و از LXC برای ایزوله نمودن پارامترهای زیر در Host استفاده می نماید :
  • Process table
  • File system
  • Network interfaces
  • ( Inter-process communications ( IPC
  • Cgroups

بنابراین بصورت پیشفرض این پارامترها در Host ایزوله و بصورت پیشفرض هم در Container ها نمی توانیم به آنها دسترسی داشته باشیم اما با استفاده از سوئیچ هایی در دستور docker میتوان این محدودیت ها را رفع نماییم.

Docker File چیست؟

قابلیتی است که توسط آن میتوانیم Image های سفارشی از Base Image ها ایجاد نماییم.به عنوان مثالی از Base Imageها میتوان به ایمیج های Scratch ، Centos ، Debian ، Ubuntu اشاره کرد.بنابراین برای این کار می بایست در ابتدا فایلی با نام Dockerfile ایجاد و در درون فایل هم از ساختار از پیش تعریف شده آن استفاده و در نهایت هم توسط دستور Docker و سوئیچ Build ایمیج مورد نظر را ایجاد نماییم.

داکر ( Docker ) چیست؟

Docker Hub چیست ؟

Docker hub مخزنی از image های Dokcer می باشد.در حال حاضر بیش از 14 هزار image در این مخزن موجود می باشد.متاسفانه Docker Hub کشور ایران را تحریم نموده و برای دسترسی به آن می بایست آدرس IP خود را تغییر دهید.

داکر ( Docker ) چیست؟

Docker Registry چیست؟

توسط Docker Registry می توانیم یک مخزن Private ایجاد و Image ها را به درون این مخزن منتقل و در نهایت هم توسط دستور داکر Image ها را از این مخزن دریافت نماییم.بنابراین با استفاده از این قابلیت می توانیم محدودی که توسط Docker Hub برای کشور ایران در نظر گرفته شده را رفع نماییم.

داکر ( Docker ) چیست

Docker Swarm چیست ؟

توسط Dokcer Swarm میتوانیم Clustring و Load Balancing را در داکر پیاده سازی نماییم.

داکر ( Docker ) چیست؟


  • داکر ( Docker ) چیست؟

    در ساده ترین تعریف ممکن ، داکر یک نرم افزار مجازی ساز سطح سیستم عامل یا OS Level Virtualization است که با استفاده از هسته سیستم عامل اصلی ، اقدام به ساخت ماشین مجازی می کند ، به زبان ساده تر شما با استفاده از داکر می توانید ماشین های مجازی هم نوع با سیستم عامل میزبان را به سادگی تولید کنید ، هر چند با توسعه پیدا کردن Docker این روزها با اضافه شدن قابلیت های زیاد ، امکان اضافه کردن ماشین های مجازی غیر از هسته سیستم عامل اصلی هم فراهم شده است.
  • کانتینتر ( Container ) چیست؟

    کانتینرها یا Container ها در داکر در واقع همان ماشین های مجازی هستند با این تفاوت که از هسته سیستم عامل اصلی استفاده می کنند و منابع بسیار کمتری به نسبت ماشین های مجازی معمول با مجازی سازهای دیگر مثل KVM و VMWare استفاده می کنند.
  • داکر ( Docker ) چه کاربردی دارد؟

    داکر این روزها در همه جا کاربرد دارد ، از سرویس های میزبانی اینترنتی یا هاستینگ ها گرفته تا مراکز داده و سازمان ها به عنوان ماشین مجازی یا در مباحث پیشرفته تری مثل DevOPS یا در طراحی های نوین نرم افزاری ، داکر این روزها هسته ای برای توسعه نرم افزار در محیط های کلاود هم محسوب می شود.

نظرات