داکر چیست | docker چگونه کار میکند
داکر چیست
docker مثل یک پلتفرم عمل میکنه که به ما کمک میکنه کانتینر ایجاد بکنه و برنامه که نوشتیم یا داریم توسعه میدهیم را توی اون اجرا بکنیم . کانتینر مثل یک جعبه که کاملا دربسته و ایزوله هست . این که این جعبه ایزوله هست برای اینه که دیگه مهم نیست برنامه شما روی چه پلتفرمی داره اجرا میشود.و اینکه چه نرم افزار یا کدهای در سیستم شما بوده و تاثیر میزاشته روی بقیه برنامه ها یا زیر ساخت شبکه چگونه تعریف شده و داره کار میکنه
به طور ساده هر متغییری که وابستگی داره به وب سایت یا سیستم عامل اینجوری حظف میشود پس وقتی دارید وب سایت توسعه میدهید یا برنامه توسعه میدهید می توانید مطمئن باشد خروجی این برنامه به همان شکل نیز روی سیستم پروداکشن کار میکنه .
از طرف دیگر مشکلهای قدیمی برای شبکه ، زیرساخت ، توسعه پیش میامد دیگه پیش نمیاد.
حالا مشکل چی بود؟ وقتی توسعه دهنده ها یک کدی مینوشتین روی سیتم خودشون کار میکرد ولی موقعه ای که برنامه به مسئولین شبکه میدادند که برنامه ران بشود میدیند که اپلیکیشن درست کار نمیکنه خلاصه یه بحثی بین این دو شکل میگرفت که کی راست میگه
چطور docker رو نصب کرد و باهاش کانتینر ساخت
برای نصبش به سایت خودش برید و برای هر سه محیط ویندوز ، لینوکس ، مک توضیح داده.
جدا از این ها ما دستور داریم 1- docker 2 – docker-compose
1- با استفاده از ان بخشها و اکوسیستم محیط داکر رو مدیریت کنید.
مدیریت image : image چیزی هست که شما روی کانتینر نصب میکنید.در حالت کلی image یک نسخه کلی از delet هست + برنامه هایی که شما نیاز دارید نصب کنید برای توسعه سایت یا نرم افزار شما.
مثلا فرض کنید یک برنامه رو دارید با nud.js پیاده سازی می کینید.و میخواهید داخل کانتینر بیاریدش بالا برای این کار شما نیاز به یک image دارید به همراه nud.js که از قبل روی سیستم نصب شده این جوری وقتی شما image رو داخل کانینر بالا اوردید یک سیستم عامل کوچک بالا می اید + محیطی که nud.js قابل اجرا هست
بخش بعدی که بیشتر سیستم قابل کنترل هست container هست :
Container مثل یک کامپیوتری هست که image قرار روی کامپیوتر نصب بشود. حالا میتونید کدی رو که نوشتید روی container اجرا بکنید.
Network
منظور ما از شبکه یک شبکه مجازی هست و همان طوری که گفتیم داکر به شما کمک میکنه که برنامه رو روی میحیط ایزوله بالا بیاورید . این محیط احتیاج داره که به نحوی با سیتم عامل شما صحبت بکنه ، دیتا رد بدل بکنه ، یا اگر ادرس وب سایت در مرورگر میزنید و خروجی رو از کانتینری که وجود دارد بگیرید
ممکنه سیستمی که دارید توسعه میدهید ممکنه به دو یا چند عدد ماشین ( کانینر) نیاز داشته باشد و بخواهید روی هر کدام وب سرور ، دیتا بیس ، یا ترافیک وب سایت بین انها تقسیم شود و.. موارد دیگر خود کانتینر نیاز به یک شبکه داخلی دارد. شما میتونید چنتا از ماشین ها رو برگردونید به سیتم عامل ها که بتونید به دیگر ماشین ها دسرسی داشته باشید. ولی هدف کلی Network اینکه محیط ایزوله رو برای شما فراهم کنه و ارتباط کانتینرها با یکدیگر.
Data value
این جور در نظر بگیرید که داکر میاد یک بخش از فضای سیتم عامل شما رو میگیره و به عنوان یک پوشه اختصاص میده به کانتینر شما مثلا یه هارد اگسترنال که به کامپیوتر وصل میکنید.
دلیل Data value چیست
اینکه شما هر موقعه که خواستید یک کانتینر به وجود بیاورید و هر موقعه که دوست داشتید اونو حذف کنید. حالا فرض کنید یک کانتینر دارید که دیتا بیس شما روش هست بعد از مدتی یک سری اطلاعات داخل خودش ذخیره میکنه حالا اگر به هر دلیل مثلا اپدیت دیتا بیس سایت بخواهید کانتینر رو حذف بکنید و کانتینر جدید رو بالا بیاورید چه اتفاقب می افتد
تمامی اطلاعات داخل کانتینر حذف میشود بری اینکه این مشکل درست شود مفهوم Data value شکل گرفت.
روش مختلف ایجاد کانتینر:
ساده ترین حالت استفاده از دستور docker run حد اقل دستوری که شما باید بنوسید اسم image هست که میخواهید کانتینر بر اساس اون ایجاد شود. حالا اسم image از کجا بیاوریم یک مفهومی وجود دارد به اسم docker registry که یک سری image های امده پر کاربرد در این وب سایت قرار دارد hub.docker.com که میتونید اسمشو از انجا پیدا بکنید . حالا میتونه بعضی image به صورت عمومی یا خصوصی باشد.
نوشتن دیدگاه