![داکر image چیست](../wp-content/uploads/2021/04/دارک.gif)
از سوالاتی که همواره بسیاری از کاربران می پرسند این است: تفاوت داکر image و کانتینر چیست ؟ در این مقاله به بیان تفاوت داکر ایمج با کانتینر و همچنین ارتباط آن ها با یکدیگر می پردازیم. در ادامه با ما همراه باشید.
معرفی داکر (Docker)
Docker یک نرم افزار منبع باز یا open source است که برای تسهیل و ساده سازی توسعه برنامه ها طراحی شده است. این مجموعه ای از محصولات PaaS یا پلتفرم به عنوان سرویس است که محیط مجازی مجزایی را برای ساخت، استقرار و آزمایش برنامه ها ایجاد می کند.
اگرچه می توان گفت تسلط بر این نرم افزار نسبتاً ساده است. برخی اصطلاحات خاص در مورد داکر وجود دارند که ممکن است برای کاربران جدید و یا تازه کار کمی گیج کننده به نظر برسند. کاربران جدید می بایست به فایل های داکر، تصاویر، کانتتینر ها، volume ها و دیگر اصطلاحات تسلط یابند و با گذشت زمان به شنیدن آن ها عادت کنند. بهتر است تلاش کنید تا نقش ها و وظایف اساسی هرکدام از این عناصر را درک کنید چرا که این کار باعث تسریع یادگیری نحوه کار با آن ها می شود. برای اطلاعات بیشتر و آشنایی بیشتر با داکر مقاله ی داکر docker چیست را در بلاگ ابر آراز مطالعه نمایید.
داکر ایمیج (Docker Image) چیست؟
داکر ایمج یک فایل غیر قابل تغییر است که شامل کد منبع، libraries، وابستگی ها (dependencies) ، ابزارها و سایر فایل های مورد نیاز برای اجرای یک برنامه است. به دلیل وجود کیفیت read-only، از این ایمج ها یا تصاویر گاهی به عنوان اسنپ شات نام برده می شود. آنها نمایانگر یک برنامه کاربردی و محیط مجازی آن در یک زمان خاص هستند. وجود این ثبات یکی از ویژگی های عالی داکر است که به توسعه دهندگان اجازه می دهد تا نرم افزار را در شرایط یکنواخت و ثابت آزمایش کنند.
از آنجا که ایمج ها به نوعی فقط الگو یا template هستند، نمی توانید آن ها را استارت یا اجرا کنید. کاری که می توانید انجام دهید این است که از آن الگو به عنوان پایه برای ساخت کانتینر استفاده کنید. کانتینر در نهایت فقط یک ایمج در حال اجرا است. هنگامی که یک کانتینر ایجاد می کنید، یک لایه قابل نوشتن در بالای آن ایمج تغییرناپذیر اضافه می کند، به این معنی که اکنون می توانید آن را اصلاح کنید.
در ادامه بحث داکر ایمج :
ایمجی که بر اساس آن کانتینر ایجاد می کنید به طور جداگانه وجود دارد و قابل تغییر نیست. هنگامی که یک محیط کانتینر دار را اجرا می کنید، در اصل یک نسخه read-write copy از آن سیستم فایل (docker image) را در داخل کانتینر ایجاد می کنید. این یک لایه کانتینر که اجازه می دهد کل نسخه کپی از ایمج اصلاح شود را اضافه می کند. شما می توانید تعداد نامحدودی تصاویر Docker را از یک پایگاه تصویر یا image base ایجاد کنید. هر بار که حالت اولیه یک ایمج را تغییر می دهید و حالت موجود را ذخیره می کنید، یک الگوی جدید با یک لایه اضافی در بالای آن ایجاد می کنید.
بنابراین ایمج های داکر می توانند از یک سری لایه ها تشکیل شده باشند که هر یک متفاوت از دیگری است، اما از لایه قبلی منشا می گیرند. لایه های ایمج نشان دهنده فایل های read-only هستند که پس از استفاده از آن ها برای راه اندازی یک محیط مجازی، یک لایه کانتینر به آنها اضافه می شود.
داکر کانتینر (Docker Container) چیست؟
کانتینر Docker یک محیط مجازی run-time است که در آن کاربران می توانند برنامه ها را از سیستم اصلی جدا کنند. این کانتینر ها واحد های قابل حمل و فشرده ای هستند که می توانید در آن ها به راحتی یک برنامه را راه اندازی کنید. یک ویژگی مهم دیگر، استاندارد سازی محیط محاسبات و رایانش در حال اجرا در داخل کانتینر است. این نه تنها از این که برنامه شما در شرایط یکسانی در حال کار است اطمینان حاصل می کند، بلکه اشتراک گذاری با سایر هم تیمی ها را نیز ساده می سازد.
از آنجا که کانتینرها مستقل هستند، در هنگام وقوع اختلال می توانید از ایجاد نشدن وقفه در کار دیگر کانتینر های در حال اجرا و همچنین سروری که از آنها پشتیبانی می کند ، اطمینان حاصل کنید. داکر این ادعا را دارد که این واحدها ” قوی ترین حالت قابلیت ایزوله سازی (isolation) را در صنعت فراهم می کنند”. بنابراین، هنگام تهیه یک برنامه لازم نیست نگران امنیت دستگاه خود باشید.
برخلاف ماشین های مجازی (VM) که مجازی سازی در سطح سخت افزاری انجام می شود، کانتینرها در لایه برنامه مجازی سازی می شوند. آن ها می توانند از یک ماشین استفاده کنند. هسته آن را به اشتراک بگذارند و سیستم عامل را مجازی کنند تا فرایندهای جداگانه را اجرا کند. این باعث می شود کانتینر ها به میزان زیادی سبک شوند و امکان حفظ منابع مهم برای شما وجود داشته باشد.
مقایسه داکر ایمج و کانتینر ها
هنگام بحث راجع به داکر ایمج و کانتینر (Docker Image and Container) منصفانه نیست که آنها را به عنوان دو چیز مخالف با هم مقایسه کرد. هر دو عنصر ارتباط نزدیکی با هم دارند و بخشی از سیستمی هستند که توسط سیستم عامل داکر تعریف شده اند.
اگر دو بخش قبلی را که تفاوت داکر Image و کانتینر را تعریف می کنند خوانده باشید، به احتمال زیاد رابطه ی میان این دو را درک کرده اید. ایمج ها می توانند بدون نیاز به کانتینر وجود داشته باشند. در حالی که یک کانتینر برای بقای خود نیاز به اجرای یک ایمج دارد. بنابراین، کانتینرها به ایمج ها وابسته هستند و از آن ها برای ساختن یک محیط run-time و اجرای یک برنامه استفاده می کنند.
این دو مفهوم به عنوان مؤلفه های اساسی ( یا بهتر است بگوییم فازها) در روند راه اندازی داکر کانتینر وجود دارند. داشتن یک کانتینر در حال اجرا “آخرین مرحله یا فاز” از این فرآیند است، که نشان می دهد به مراحل و مؤلفه های قبلی وابسته است. به همین دلیل است که ایمج داکر ها اساساً کانتینر ها را مدیریت کرده و به آن ها شکل می دهند.
از Dockerfile به ایمج و کانتینر
همه چیز با اسکریپت دستورالعمل هایی شروع می شود که نحوه ساخت یک داکر ایمج خاص را مشخص می کند. این اسکریپت Dockerfile نام دارد. فایل به طور خودکار دستورات مشخص شده را اجرا کرده و یک داکر ایمج ایجاد می کند.
کامند یا دستور ایجاد ایمج از Dockerfile این است: docker build .
سپس ایمج به عنوان الگو (یا پایه) مورد استفاده قرار می گیرد. یک توسعه دهنده می تواند آن را کپی کرده و از آن برای اجرای برنامه استفاده کند. این برنامه به یک محیط جداگانه برای اجرا نیاز دارد که آن کانتینر است. این محیط صرفا یک “فضای” مجازی نیست، بلکه کاملاً متکی به ایمجی است که آن را ایجاد کرده است. کد منبع، فایل ها ، وابستگی ها و binary libraries، که همگی درداکر image یافت می شوند. مواردی هستند که یک کانتینر را تشکیل می دهند.
برای ایجاد یک لایه کانتینر از یک image، از دستور docker create . استفاده کنید. پس از اینکه یک کانتینر را از یک ایمج موجود راه اندازی کردید، سرویس آن را شروع کرده و برنامه را اجرا کنید.
ایجاد یک داکر image از یک کانتینر
اگر در ایمج اولیه تغییراتی ایجاد کردید و می خواهید آن را برای کارهای بعدی در آینده حفظ کنید، می توانید با گرفتن اسکرین شات از صفحه فعلی کانتینر، ایمج اصلاح شده را ذخیره کنید. با انجام این کار، شما یک لایه کانتینر را در بالای ایمج وصل می کنید و در نهایت یک ایمج تغییر ناپذیر جدید ایجاد می کنید. در نتیجه، شما با دو داکر image مشتق شده از سیستم فایل یکسان مواجه خواهید شد.
نتیجه گیری
هنگامی که مراحل ایجاد یک کانتینر را درک کردید ، به راحتی تفاوت داکر ایمج و کانتینر را تشخیص خواهید داد. پس از خواندن این مقاله، اکنون باید درک خوبی از این که داکر کانتینر چیست، کانتینر چیست و نحوه اتصال آن ها داشته باشید. اکنون که تفاوت داکر image و کانتینر (Docker Image and Container) را دانستید، برای کسب اطلاعات بیشتر می توانید دیگر مقالات ما در مورد داکر و کانتینر ها را نیز بررسی کنید.
آیا با مفهوم ماشینهای مجازی آشنایی دارید؟ آیا تفاوت میان ماشین مجازی و داکر را میدانید؟ ما در مقالهای دیگر به تفصیل درمورد این موضوع برای شما توضیح دادهایم. پیشنهاد میکنیم فرصت مطالعهی مقالهی تفاوت داکر با ماشین مجازی را ازدست ندهید.
چرا ابر آراز؟
هاست ابری ابر آراز برای افرادی طراحی شده است که به تعداد بالایی از ترافیک روزانه در سایت خود دست یافتهاند و دوست دارند فعالیت خود را حرفهایتر ادامه دهند؛ با خرید هاست ابری پر سرعت ابر آراز از خدمات تیم پشتیبانی ما که از یک گروه حرفهای متخصص تشکیل شده، در ۲۴ ساعت شبانهروز بهره مند خواهید شد.