مهمترین اصطلاحات Docker
با پیشرفت روز افزون فناوری و افزایش پیچیدگی برنامههای نرم افزاری، نیاز به ابزارهایی که توسعه، استقرار و مدیریت برنامهها را ساده و بهینه کنند، بیش از پیش احساس میشود. Docker یکی از همین ابزارهای قدرتمند است که با استفاده از مفهوم کانتینرها، امکان اجرای برنامهها در محیطهای ایزوله، سبک و قابل حمل را فراهم میکند.
Docker چیست؟
Docker پلتفرمی منبع باز میباشد که این امکان را برای توسعه دهندگان فراهم میآورد تا بتوانند استقرار، مقیاس گذاری و مدیریت برنامهها را با استفاده از ظروف سبک وزن و قابل حمل خودکار کنند. کانتینرها کد برنامه را همراه با تمامی متعلقات آن بسته بندی و از رفتار سازگار آن در محیطهای مختلف اطمینان حاصل میکنند. با وجود آنکه کانتینرها مفاهیم نا آشنایی نیستند، ولی Docker چشم انداز آن را متحول ساخت.
کانتینر چیست؟
کانتینرها را میتوان نوعی مجازی ساز سیستم عامل دانست که برنامهها را در یک محیط، اما به طور ایزوله نگهداری میکنند. Containerها جایگزینهای خوبی برای ماشینهای مجازی هستند و در کنار کارایی بالا از منابع پایینی استفاده میکنند. زمان اجرای کانتینرها بالا است و باعث شده بسیار محبوب باشند.
تفاوت Container و VM چیست؟
ماشین مجازی یک سیستم عامل کامل را روی سخت افزار مجازی اجرا میکند و هر VM به صورت مستقل عمل میکند، در حالی که داکر فقط برنامه و وابستگیهای آن را در یک کانتینر ایزوله شده اجرا میکند و از هسته سیستم عامل میزبان استفاده میکند. به همین دلیل کانتینرها سبکتر، سریعتر و قابل حملتر هستند، اما ماشینهای مجازی امنیت و انعطاف بیشتری ارائه میدهند.
مزایای کلیدی Docker
Docker مزایای زیادی دارد که برخی از آنها به شرح زیر است:
- قابل حمل: کانتینرهای داکر قادر خواهند بود تا بر روی هر پلتفرمی که از داکر پشتیبانی میکند اجرا شوند. این قابلیت مشکل سازگاری را از بین میبرد و این امکان را برای توسعه دهندگان فراهم میآورد تا برنامهها را به صورت محلی ساخته، آزمایش و در نهایت بدون تغییر در محیطهای مختلف مستقر کنند.
- ایزوله: کانتینرهای داکر در محیطهای ایزوله خود عمل میکنند و از تداخل برنامهها با یک دیگر جلوگیری میکنند و راهی امن را برای اجرای چند برنامه در یک میزبان واحد فراهم میآورند.
- مقیاس پذیری: آسان سازی مقیاس بندی برنامهها با اجرای چندین کانتینر در میزبانهای مختلف و حتی در فضای ابری از مزایای Docker به شمار میرود.
- کنترل نسخه: Docker این امکان را فراهم میآورد تا نسخههای تصاویر و بازگشت آسان به نسخههای قبلی را فراهم کند و اطمینان حاصل کند که محیط برنامه سازگار و قابل تکرار باقی میماند.
- و…
مهمترین اصطلاحات Docker
در اینجا به معرفی برخی از مهمترین اصطلاحات Docker میپردازیم:
تصاویر و ساخت کانتینر
این دسته به فایلها و مفاهیمی مربوط میشود که برای ایجاد و ساخت کانتینرها استفاده میشوند.
Image
بستهای سبک، مستقل و قابل اجرا میباشد که شامل کد برنامه، زمان اجرا، کتابخانهها، متغیرهای محیطی و تنظیمات مورد نیاز برای اجرای یک برنامه خاص است. Image به عنوان طرحی ابتدایی برای ایجاد Docker عمل میکند.
Dockerfile
فایلی متنی است که شامل یک سری دستورالعملها برای ساخت تصویر داکر میباشد. این فایل کد برنامه را کپی، متعلقات را نصب، متغیرهای محیطی را تنظیم و برنامه کانتینری شده را پیکربندی میکند.
Build Cache
هنگام ساخت یک تصویر Docker، کش ساخت لایههای میانی را ذخیره میکند تا سرعت ساختهای بعدی را افزایش دهد.
Multi-Stage Builds
از جمله ویژگیهای Docker است که به کاربران اجازه میدهد تا بتوانند چندین تصویر میانی بسازند تا اندازه تصویر نهایی را کوچک نگه دارند و در عین حال همه ابزارهای ساخت لازم را نیز در بر دارند.
BuildKit
از BuildKit برای ساخت تصاویر داکر استفاده میشود. این ابزار مدرن است و سرعت، امنیت و قابلیتهای ویژهای دارد.
کانتینرها
این دسته مربوط به محیطهای اجرایی ایزولهای است که برنامهها و وابستگیهایشان را در خود جای میدهند.
کانتینر (Container)
نمونهای از تصویر داکر است که یک محیط زمان اجرا است و برنامه و متعلقات آن را در بر میگیرد. کانتینرها از سیستم میزبان و سایر کانتینرها جدا میشوند و بدون در نظر گرفتن زیر ساختهای زیر بنایی، رفتار ثابتی را تضمین میکنند.
Sidecar Containers
کانتینرهای جانبی عملکرد یا پشتیبانی بیشتری از کانتینر برنامه اصلی ارائه میکنند و ماژولار بودن و مقیاس پذیری را افزایش میدهند.
Health Check
بررسی سلامت یک ویژگی در Docker است که به شما اجازه میدهد تا دستوراتی را برای بررسی سلامت دورهای کانتینر تعریف نمایید.
Container Security
Docker چندین ویژگی امنیتی مانند فضای نام کاربری، SELinux/AppArmor و گزینههای زمان اجرای کانتینر را برای جداسازی و محافظت از کانتینرها در برابر تهدیدات احتمالی فراهم میکند.
Containerization in Microservices Architectures
به طور گسترده در معماریهای میکروسرویس برای تجزیه برنامههای یکپارچه به خدمات کوچکتر و قابل مدیریت استفاده میشود.
Namespaces
در داکر منابع سیستم باید به صورت ایزوله برای یک کانتینر مدیریت شود. Namespaces این وظیفه را بر عهده دارد و این امکان را ایجاد میکند تا هر کانتینر به درستی کار کند.
Cgroups (Control Groups)
برای اینکه سطح دسترسی منابع سیستم و محدودیتهای آنها مشخص شود از Cgroups (Control Groups) استفاده میشود.
مدیریت و ارکستراسیون
این دسته به ابزارها و روشهایی اشاره دارد که برای مدیریت خودکار، استقرار و مقیاس بندی کانتینرها استفاده میشوند.
Docker Compose
این ابزار برای تعریف و اجرای برنامههای Docker چند کانتینری است و از یک فایل YAML (معمولا به نام docker-compose.yml) برای مشخص کردن سرویسها، شبکهها و حجمهای مورد نیاز برای یک پشته برنامه کامل استفاده میکند.
Container Orchestration
به مدیریت خودکار، استقرار، مقیاس بندی و شبکه سازی کانتینرها اشاره دارد که معمولا با ابزارهایی مانند Docker Swarm یا Kubernetes انجام میشود.
Swarm
راه حلی بومی است که به کاربران اجازه میدهد تا Docker Swarm را ایجاد و مدیریت کنند تا برنامهها را در چندین میزبان مستقر و مقیاس بندی کنند.
Service
وظیفه یا مجموعهای از وظایف را تعریف میکند که باید روی خوشه اجرا شوند. این یک ظرف مقیاس پذیر و طولانی مدت را نشان میدهد که میتواند در چندین گره برای در دسترس بودن بالا تکرار شود.
Kubernetes
مستقیما بخشی از Docker نیست. اما ویژگیهای قدرتمندی را برای خودکار سازی استقرار، مقیاس بندی و مدیریت برنامههای کانتینری ارائه میدهد.
Overlay Network
این اجازه را به کانتینرها میدهد تا بتوانند به صورت ایمن در چندین گره در خوشه با یک دیگر ارتباط برقرار کنند، حتی اگر روی میزبانهای مختلف در حال اجرا باشند.
Docker Secrets
در داکر برای مدیریت اطلاعات حساس و مهم از Docker Secrets استفاده میشود. با این ویژگی داده به صورت رمز گذاری شده ذخیره میشوند و برای سرویسهای نیاز مورد استفاده قرار میگیرند.
Docker Context
با Docker Context در داکر امکان مدیریت چندین محیط مختلف را برای اجرای دستورات متفاوت خواهید داشت.
شبکه و ذخیره سازی
این دسته مربوط به اتصال کانتینرها و مدیریت دادهها است.
Network
داکر میتواند قابلیتهای شبکه را برای اتصال کانتینرها به هم یا به شبکه میزبان فراهم آورد و امکان ارتباط بین کانتینرهای مختلف و منابع خارجی را فراهم میکند.
Volume
حجم داکر یک دایرکتوری تعیین شده در یک کانتینر است که حتی پس از حذف کانتینر، دادهها را حفظ میکند. Volume اشتراک گذاری دادهها را بین سیستم میزبان و کانتینرها یا بین چندین کانتینر امکان پذیر میکند.
رجیستریها و مدیریت تصاویر
این دسته مربوط به ذخیره، اشتراک گذاری و مدیریت تصاویر Docker است.
Registry
مخزنی مرکزی برای ذخیره و توزیع تصاویر داکر به حساب میآید.
Docker Hub
این رجیستری عمومی مجموعهای وسیع از تصاویر Docker را میزبانی میکند که کاربران میتوانند آنها را بکشند و در پروژههای خود استفاده کنند.
Private Registry
در زیر ساخت سازمان قرار دارد و به تیمها اجازه میدهد تا بتوانند تصاویر سفارشی داکر را به صورت ایمن ذخیره و به اشتراک بگذارند.
Docker Registry API
این مشخصات چگونگی تعامل با رجیستریهای Docker را برای فشار، کشیدن و مدیریت تصاویر Docker تعریف میکند.
Container Registry Authentication
در راستای دسترسی ایمن به ثبت کانتینرهای خصوصی، داکر این مکانیسمها را فراهم میآورد تا اطمینان حاصل کند تنها کاربران مجاز قادر انجام برخی از کارها بر روی تصاویر هستند.
ابزارها و رابطها
این دسته شامل ابزارها و رابطهای کاربردی برای ایجاد، مدیریت و تعامل با Docker است.
Docker Engine
جزئی اصلی است که مسئول اجرا و مدیریت کانتینرهای Docker است. این موتور شامل یک سرور (daemon) و یک رابط خط فرمان (CLI) است که برای تعامل با Docker استفاده میشود.
CLI
ابزاری برای خط فرمان است که برای تعامل با داکر و مدیریت کانتینرها، تصاویر، شبکهها، حجمها و سایر اجزای داکر استفاده میشود.
Docker Desktop
ابزاری برای Windows و macOS است که به توسعه دهندگان اجازه میدهد تا کانتینرهای Docker را در ماشینهای توسعه محلی خود ایجاد، اجرا و مدیریت کنند.
در آخر
Docker با ارائه مفاهیم نوین در مدیریت برنامهها و کانتینرها، تحولی چشمگیر در فرآیند توسعه، استقرار و مقیاس بندی نرم افزارها ایجاد کرده است. آشنایی با اصطلاحات و ابزارهای کلیدی Docker میتواند به توسعه دهندگان کمک کند تا برنامههای خود را با امنیت، انعطاف پذیری و کارایی بالا اجرا و مدیریت کنند. امید است این مقاله شما را در درک مفاهیم اصلی Docker و بهره گیری بهینه از آن یاری کرده باشد.
سوالات متداول
کانتینرها سبکتر و سریعتر از ماشینهای مجازی هستند، منابع کمتری مصرف میکنند و زمان اجرای کوتاهتری دارند. در عین حال، ایزوله بودن محیط اجرای برنامهها حفظ میشود.
بله، Docker به طور گسترده در معماریهای میکروسرویس برای تجزیه برنامههای بزرگ به سرویسهای کوچکتر و مدیریت پذیر استفاده میشود.
منابع
- https://medium.com/@chetxn/the-most-common-docker-terms-72386c357852
به این مقاله امتیاز دهید!
میانگین امتیاز 0 / 5. تعداد رأی ها : 0
هنوز هیچ رأیی داده نشده. اولین نفر باشید!


اولین دیدگاه را اضافه کنید.