و ح ی د ز ر د ا ر
آموزشی

داکر چیست؟

داکر چیست و چه قابلیت‌هایی دارد؟

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

تاریخچه docker چیست؟

داکر در سال ۲۰۱۳ توسط سولومون هیکس (Solomon Hykes) و تیمش در شرکت Dotcloud توسعه یافت. هدف اولیه این پروژه، ساده‌سازی فرآیند توسعه و استقرار برنامه‌ها بود. در ابتدا، داکر بر پایه کانتینر لینوکس (LXC) ساخته شده بود، اما به‌منظور ارتقا کارایی و افزایش انعطاف‌پذیری، تیم توسعه در سال ۲۰۱۴ به‌طور مستقل از LXC به Libcontainer روی آورد. با رشد روزافزون استفاده از سرویس داکر، این پلتفرم به‌سرعت به یک ابزار حیاتی در مدیریت و استقرار برنامه‌ها در محیط‌های ابری تبدیل شد.

آشنایی با مفاهیم اصلی در داکر

برای درک بهتر داکر، آشنایی با مفاهیم کلیدی آن ضروری است. در اینجا، به بررسی مفاهیم اصلی مانند داکر ایمیج (DockerImage)، داکر فایل (DockerFile) و کانتینر (Container) نقش هر یک در داکر پرداخته‌ایم:

کانتینر داکر چیست؟

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

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

داکر ایمیج یک قالب ثابت و آماده است که شامل تمامی فایل‌ها، برنامه‌ها و تنظیمات لازم برای ایجاد یک کانتینر است. به عبارت دیگر، ایمیج‌ها مانند “الگو” برای ایجاد کانتینرها عمل می‌کنند. این ایمیج‌ها معمولن به‌شکل Read-Only هستند و پس از راه‌اندازی یک کانتینر، می‌توانند تغییراتی در داخل کانتینر ایجاد شوند.

داکر فایل (Dockerfile) چیست؟

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

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

نسخه‌های داکر

داکر در دو نسخه موجود است که در ادامه به آن‌ها اشاره می‌کنیم: 

  • Community Edition (CE) 
  • Enterprise Edition (EE) 

نسخه Community Edition (CE) برای توسعه‌دهندگان فردی و تیم‌های کوچک مناسب است. در مقایسه با نسخه‌ی Enterprise Edition (EE)، عملکرد محدودی را ارایه می‌دهد. از طرف دیگر، ورژن Enterprise برای تیم‌ها و محیط‌های بزرگ مناسب است.

آشنایی با نحوه عملکرد داکر و مدیریت کانتینرها

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

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

آشنایی با Docker Compose

Docker Compose ابزاری است که به شما این امکان را می‌دهد تا چندین کانتینر را با استفاده از یک فایل YAML تعریف و به‌طور هم‌زمان اجرا کنید. این ابزار برای مدیریت پروژه‌های پیچیده که نیاز به چندین سرویس (مانند پایگاه داده، سرور وب و غیره) دارند، بسیار مفید است. به‌طور خلاصه، Docker Compose ابزار مدیریت کانتینرهای چندگانه در یک محیط است.

دستورات داکر

Docker ps

دستور بعدی Docker Ps است. این دستور به ما اجازه می‌دهد تا تمام کانتینرهایی را که در ‌هاست داکر در حال اجرا هستند را ببینیم. 

$ Docker ps

این دستور فقط کانتینرهایی را نشان می‌دهد که در حال حاضر روی هاست داکر در حال اجرا هستند. 

اگر می‌خواهید تمام کانتینرهایی که روی‌ هاست ایجاد شده‌اند را بدون توجه به وضعیت فعلی آن‌ها ببینید، باید گزینه‌ی a- را وارد کنید. این دستور همه‌ی کانتینترها را نمایش می‌دهد.

$ Docker ps –a

خروجی‌های دستور Docker Ps

CONTAINER ID: یک رشته‌ی منحصربه‌فرد متشکل از کاراکترهای الفبایی-عددی مرتبط با هر کانتینر است. 

IMAGE: نام تصویر داکر مورد استفاده برای ایجاد کانتینر است. 

COMMAND: یک دستور خاص برای برنامه‌ که باید هنگام راه‌اندازی کانتینر اجرا شود. 

CREATED: زمان سپری‌شده از زمان ایجاد کانتینر را نشان می‌دهد. 

STATUS: وضعیت فعلی کانتینر به‌همراه زمان سپری‌شده در وضعیت فعلی را نشان می‌دهد. 

PORTS: نگاشت پورت‌های تعریف‌شده را برای هر کانتینر نشان می‌دهد. 

NAMES: به غیر از شناسه‌ی کانتینر، به هر کانتینر یک نام نیز اختصاص داده شده است. 

Docker Start

با این دستور هر کانتینری که متوقف شده شروع به فعالیت می‌کند. 

docker start [options] CONTAINER ID/NAME [CONTAINER ID/NAME…]

می‌توانیم یک کانتینر را با مشخص کردن چند کاراکتر منحصربه‌فرد اول شناسه یا با تعیین نام آن شروع کنیم.

Docker Stop

این دستور هر کانتینر در حال اجرا را متوقف خواهد کرد. 

docker stop [options] CONTAINER ID/NAME [CONTAINER ID/NAME…]

این دستور شبیه به دستور شروع داکر است.

Docker Restart

دستور داکر ری‌استارت کانتینرهای در حال اجرا را دوباره راه‌اندازی می‌کند. 

docker restart [options] CONTAINER ID/NAME [CONTAINER ID/NAME…]

Docker Run

این دستور ابتدا کانتینر را ایجاد و سپس آن را راه‌اندازی می‌کند. در واقع این دستور ترکیبی از Docker Create و Docker Start است. 

docker run [options] IMAGE [commands] [arguments]

Docker Rm

اگر بخواهیم یک کانتینر را حذف کنیم از دستور Docker rm استفاده می‌کنیم. 

docker rm [options] CONTAINER ID/NAME [CONTAINER ID/NAME...]

Docker Images

این دستور تمام داکرهای موجود در ‌هاست داکر شما را فهرست می‌کند. 

$ docker images


خروجی‌های این دستور شامل موارد زیر هستند: 

REPOSITORY: نشان دهنده‌ی نام منحصربه‌فرد Docker Image است.  

TAG: هر Image با یک برچسب که منحصربه‌ عکس است مرتبط است. 

IMAGE ID: یک رشته‌ی یکتا متشکل از کاراکترهای الفبایی عددی مرتبط با یک Image است. 

CREATED: مدت زمانی که تصویر ایجادشده را نمایش می‌دهد.  

SIZE: اندازه‌ی تصویر را نشان می‌دهد.


ثبت نظر شما