داکرایمیج، یک فایل است که شامل کدها، متعلقات و اطلاعات یک اپلیکیشن است و برای ساخت کانتینرها استفاده میشود.
داکر کانتینر یک محیط ایزوله است که شامل برنامهها، کتابخانهها و تنظیمات مورد نیاز برای اجرای یک اپلیکیشن است و از داکر ایمیجها ساخته میشود.
در واقع داکر ایمیج یک قالب است که شامل دستورالعملهایی برای داکر کانتینر است و داکر کانتینر از داکر ایمیجها ساخته میشود.
داکر ایمیجها میتوانند به عنوان الگویی برای ساخت کانتینرها استفاده شوند. داکر کانتینرها از داکر ایمیجها ساخته میشوند و میتوانند به صورت مجزا و در محیط ایزوله اجرا شوند.
هر کانتینر داکر شامل یک نسخه از یک داکر ایمیج میباشد که در حال اجرا است.
همانطور که میدانید، داکر، به توسعهدهندگان نرمافزار و مدیران سیستمها کمک میکند تا بتوانند برنامههای خود را بهصورت مجزا و در محیطهای ایزوله اجرا کنند.( البته شاید ویژگیهای داکر را به خاطر نیاورید که بهتر است سریعتر به مقالهٔ «داکر چیست؟» مراجعه کنید.)
خب داشتیم میگفتیم که؛ داکر برای ساخت، پیادهسازی و اجرای برنامهها از Container ها استفاده میکند. داکر این کار را به کمک داکر ایمیج (Docker Image) و داکر کانتینر (Docker Container) انجام میدهد.
لطفا گیج نشوید! این یک مقدمهٔ کوتاه بود، در ادامه بهصورت کاملتری به توضیح هریک پرداخته و به مقایسهٔ داکر ایمیج و داکر کانتینر میپردازیم.
فهرست مطالب
- داکر چیست؟
- داکرایمیج چیست؟
- داکرکانتینر چیست؟
- تفاوت داکرکانتینر و
- داکرایمیج چیست؟
- نتیجهگیری
مقایسهٔ کاربردی Docker image و Docker container
اگر به دنبال یک راه حل موثر در مدیریت و اجرای برنامههای خود هستید، داکر همان چیزی است که به آن نیاز دارید.
احتمالاً در زمان کار با داکر، با دو مفهوم مهم و اساسی “داکر ایمیج” و “داکر کانتینر” آشنا شدهاید.
همانطور که گفتیم، داکرایمیج و داکرکانتینر دو مفهوم اساسی اما متفاوت هستند.
داکرایمیج یک فایل قابل حمل است که شامل تمامی بستهها، کدها، فایلها و تنظیمات مورد نیاز برای اجرای یک برنامه است.
به عبارت سادهتر، داکر ایمیج حاوی تمامی المانهای است که یک برنامه برای اجرا به آن نیاز دارد.
به عبارت دیگر،
داکر کانتینر یک نمونه از یک داکر ایمیج است که در حال اجراست و میتواند از تنظیمات مختلفی برای اجرای برنامهها استفاده کند.
بنابراین، میتوان گفت که داکر ایمیج و داکر کانتینر دو مفهوم کاملا متفاوت هستند.
داکر ایمیج حاوی تمامی المانهای لازم برای اجرای یک برنامه است، در حالی که داکر کانتینر یک نمونه از یک داکر ایمیج است که در حال اجرا است.
البته ما خیلی سریع به سراغ مقایسهٔ نمیرویم. اما اگر با مفاهیم ابتدایی داکر آشنا هستید شاید بهتراست مستقیما سراغ بخش بعدی بروید بههرحال، باز هم خواندن این بخش خالی از لطف نخواهد بود.
قبل از مقایسهٔ دقیق Docker image و Docker container بهتر است به تعریف هریک از این مفاهیم بپردازیم، تا مقایسهٔ بهتری داشته باشیم.
داکر چیست؟
Docker یک پلتفرم اجرای برنامهٔ قدرتمند است که به توسعهدهندگان اجازه میدهد تا برنامهها را در کانتینرها ایجاد، استقرار و اجرا کنند.
کانتینرها محیطهای مستقلی هستند که شامل هر چیزی که برای اجرای یک برنامه نیاز است را شامل میشود، از جمله کد، وابستگیها و ابزارهای سیستم.
همانطور که میدانید و اگر نمیدانید به شما میگوییم که دو مفهوم اساسی در اکوسیستم داکر، تصاویر داکر و کانتینرهای داکر هستند.
در حالی که هر دو Docker image و Docker container برای اجرای برنامه ها در کانتینرها مهم هستند، اما اهداف متفاوتی دارند.
Docker Image چیست؟
یک تصویر Docker یک بستهٔ سبک، مستقل و قابل اجرا است که شامل همهٔ چیزهایی است که برای اجرای یک برنامه لازم است، از جمله کد، کتابخانهها، وابستگیها و ابزارهای سیستم.
این در اصل یک ایمیج فوری از یک قالب است که میتواند برای ایجاد نمونههای جدید از آن کانتینر استفاده شود.
تصاویر Docker از یک Dockerfile ساخته میشوند که یک فایل متنی ساده است که حاوی مجموعهای از دستورالعملها برای ساخت تصویر است.
این دستورالعملها معمولاً شامل تعیین یک تصویر پایه (به عنوان مثال، یک سیستم عامل)، نصب بستههای نرمافزاری، کپی کردن فایلها در تصویر و پیکربندی تصویر است.
کانتینر داکر چیست؟
کانتینر Docker، یک بستهٔ سبکوزن، مستقل و قابل اجرا است که شامل همهٔ چیزهایی است که برای اجرای یک برنامه مورد نیاز است، از جمله کد، کتابخانهها، وابستگیها و ابزارهای سیستم.
این از یک تصویر Docker ایجاد شدهاست و میتواند جدا از سایر کانتینرها یا سیستمهای عامل میزبان، اجرا شود.
هنگامی که یک کانتینر Docker را از یک تصویر راه اندازی میکنید، یک نمونهٔ جدید از آن ظرف با محیط ایزوله خودش ایجاد میکنید.
این بدان معناست که هر کانتینر، سیستم فایل، شبکه و منابع مخصوص به خود را دارد که از میزبان و سایر کانتینرها جدا هستند.
تفاوت بین تصاویر داکر و کانتینرهای داکر چیست؟
تفاوت اصلی بین تصاویر داکر و کانتینرهای داکر در این است که یک تصویر، یک فایل ثابت و تغییرناپذیر است که بهعنوان طرحی برای ایجاد کانتینرها عمل میکند،
درحالیکه یک کانتینر نمونهای در حال اجرا از یک تصویر است.
به عبارت دیگر، یک تصویر یا ایمیج، یک الگو برای ایجاد یک قالب است، در حالی که یک قالب یا template، یک نمونهٔ خاص از آن الگو است.
یکی دیگر از تفاوتهای کلیدی Docker image و Docker container، این است که، تصاویر Docker فقط خواندنی هستند، به این معنی که پس از ایجاد نمیتوان آنها را تغییر داد.
از طرف دیگر، کانتینرهای Docker قابل نوشتن هستند، به این معنی که شما میتوانید آنها را در حالی که در حال اجرا هستند تغییر دهید.
هر تغییری که در سیستم فایل کانتینر یا سایر منابع در طول زمان اجرا ایجاد شود، زمانی که کانتینر متوقف یا حذف شود از بین میرود.
به طور خلاصه؛
داکر ایمیج (Docker Image) یک فایل اصلی و غیرقابل تغییر است که شامل کدها، متعلقات و اطلاعات یک اپلیکیشن است.
این فایل برای ساخت کانتینرها استفاده میشود و میتواند در رجیستریهای مختلفی مانند داکرهاب ذخیره شود.
بنابراین؛ داکر ایمیجها میتوانند به عنوان الگویی برای ساخت کانتینرها استفاده شوند و هر کانتینر داکر شامل یک نسخه از یک داکر ایمیج است که در حال اجرا است.
چگونه میتوانیم داکرایمیج را به دار کانتینر تبدیل کنیم؟
برای تبدیل یک داکر ایمیج به یک داکر کانتینر، میتوانید از دستور docker run استفاده کنید. این دستور یک کانتینر از یک داکر ایمیج ایجاد میکند و
آن را اجرا میکند.
برای اینکار، ابتدا باید نام داکر ایمیج مورد نظر را با استفاده از دستور docker images پیدا کنید. سپس با استفاده از دستور docker run، یک کانتینر از آن ایمیج ایجاد کنید و آن را اجرا کنید.
بحث و نتیجهگیری
درک تفاوتهای بین تصاویر و کانتینرها برای استفاده مؤثر و کارآمد از داکر در جریانهای کاری توسعه و استقرار نرمافزار ضروری است. همانطور که متوجه شدیم؛ تصاویر داکر و کانتینرهای داکر دو جزء ضروری و مهم در اکوسیستم داکر هستند.
Docker image یک فایل فوری ثابت و غیرقابل تغییر از یک ظرف است که به عنوان طرحی برای ایجاد نمونههای جدید از آن ظرف عمل میکند و Docker container یک نمونه در حال اجرا از یک تصویر با محیط ایزوله، سیستم فایل و منابع خود است و از داکر ایمیجها ساخته میشود.
بهکارگیری این دو مفهوم میتواند تاثیر مهمی در دقت و سرعت پروژههای شما داشته باشد.
داکر یک فناوری فوقالعاده است که استفاده از آن به هر توسعه دهندهایی پیشنهاد میشود.
با داشتن یک زمانبندی مناسب، یادگیری داکر را شروع کنید و از ویژگیهای بسیار عالی آن در اجرای پروژههای خود لذت ببرید.