داکر: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جز اضافه شدن Docker Hub |
اصلاحات نوشتاری و خواناتر کردن متن |
||
خط ۲۰:
میتوان گفت که داکر به توسعهدهندگان این اطمینان را میدهد که میتوانند اپلیکیشن خود را بدون نگرانی از سیستمهای میزبان برنامه خود در مرحله توسعه و تست و بر روی سیستمهای مختلف، بدون هیچگونه اشکال و به صورت کاملاً مشابه اجرا کنند و مشکلی از بابت تغییر سیستمعاملهای اجراکننده برنامه خود نخواهند داشت.
داکر تا حدی شبیه به ماشین مجازی (Virtual Machine) است با این تفاوت که در ماشین مجازی، قسمتی از سختافزار سیستم به ماشین مجازی اختصاص داده میشود و روی آن یک سیستمعامل کامل نظیر ویندوز یا
داکر ابزاری است متنباز (Open Source) و کدهای آن بر روی گیتهاب قرار دارد و هر فرد علاقهمند میتواند در توسعه آن مشارکت کند.<ref>{{یادکرد وب|عنوان=Opensource.com|نشانی=https://opensource.com/|وبگاه=Opensource.com|بازبینی=2020-12-14|کد زبان=en}}</ref>
خط ۳۵:
کانتینرهای داکر قسمتی از نرمافزار را در یک سیستم فایل کامل تعبیه میکند. به صورتی که شامل هر آنچه جهت اجرا شدن (مانند کد زمان اجرا، ابزارهای سیستم و تنظیمات سیستم) لازم است و هر آنچه که میتواند بر روی یک سرور نصب شود میباشد. این امر اجرای برنامه را به صورت ثابت در هر نوع محیطی تضمین میکند.
به طور کلی میتوان گفت داکر این قابلیت را به ما میدهد تا یک اپلیکیشن را در یک محیط ایزوله به نام کانتینر (Container) اجرا کنیم. ایزوله بودن و امنیت
Container یک نمونه قابل اجرای یک Image است. میتوان یک کانتینر را به وسیله Docker API یا کلاینت ایجاد، اجرا، حذف و یا متوقف کرد.
معمولا کانتینرها از دیگر کانتینرهای در حال اجرا به خوبی ایزوله میشوند. شما میتوانید میزان ایزوله بودن کانتینرها را در مواردی مانند
یک کانتینر در واقع با Image آن و همهٔ تنظیماتی که در زمان اجرای آن انجام میدهید تعریف میشود. هنگامی که کانتینر حذف میشود، هر تغییر فایلی که در آن به وجود
== Docker Container Image ==
Docker Container Image یک پکیج نرمافزاری سبک، خوداتکا (Stand-alone) و قابل اجراست. Imageها حاوی تمامی نیازمندیهای اپلیکیشن برای اجرا
یک Image در واقع یک Read-Only Template حاوی دستوراتی برای ساخت یک کانتینر داکر است. معمولا استفاده ما از Image ها به اینصورت است که با تغییر یک Image، Image دیگری را که برای ما مناسبتر است میسازیم. مثلاً میتوانیم Imageای بسازیم که برپایه Image اوبونتو است اما یک سرور Apache نیز روی آن نصب میشود. شما میتوانید از Imageهای آماده استفاده کنید و یا Image مناسب خود را بسازید. برای ساختن Image جدید کافی است یک Dockerfile ساده بسازید که در آن دستوراتی برای نشاندادن چگونگی ساختن و اجرا کردن Image موجود است. وقتی که Dockerfile خود را تغییر میدهیم و Image جدیدی میسازیم، تنها بخشهای جدید دوباره ساخته میشوند و این یکی از دلایل عمده سرعت و عملکرد بهتر داکر نسبت به بقیه فناوری های شبیهسازی (Virtualization) است. <ref>{{یادکرد وب|عنوان=mostafaghadimi/web_workshop|نشانی=https://github.com/mostafaghadimi/web_workshop|وبگاه=GitHub|بازبینی=2020-12-14|کد زبان=en}}</ref>
== موتور داکر (Docker Engine) ==
موتور داکر یک تکنولوژی Containerize برای ساختن و اجرای
* یک سرور که نوعی نرم افزار با مدت زمان اجرای طولانی است که به آن پروسه Daemon گفته میشود.
* یک REST API که واسط کاربری نرم افزارها برای ارتباط و دادن دستورات به Daemon است.
* یک کلاینت خط فرمان یا (Command Line Interface (CLI
کلاینت از APIهای داکر برای کنترل و تعامل با Daemon استفاده میکند. این استفاده از طریق اسکریپتها یا
== تفاوت داکر و ماشین مجازی ==
یک کانتینر به صورت native روی لینوکس اجرا میشود و به صورت مشترک با سیستمعامل از کرنل استفاده میکند.
== نصب داکر ==
برای نصب داکر راههای مختلفی وجود دارد. بهترین روش آنست که بسته docker را از مخزن اصلی توزیع لینوکس مورد استفاده خود دریافت و آن را با استفاده از مدیر بسته (Package Manager) مربوطه روی سیستمعامل خود نصب کنید.
برای نصب داکر راههایی وجود دارد اما در اینجا اسکریپتهای ارائه شده توسط سایت داکر را قرار میدهیم. این اسکریپتها برای نصب داکر روی اوبونتو است. محتوای کامل نحوه نصب در سایت داکر قرار دارد و محتوای این نوشته هم در [https://docs.docker.com/engine/install/ubuntu/ این لینک] است که توصیه میشود آن را مطالعه کنید. برای نصب سه راه وجود دارد:▼
▲
* نصب از طریق ریپازیتوری داکر▼
* دانلود DEB Package و نصب دستی آن
* نصب از طریق اسکریپتهای convenience
در این نوشته راه دوم ارائه میشود. اگر نمیتوانید نصب را با راه اول انجام دهید این راه را امتحان کنید. ابتدا فایل deb. را برای سیستم خود دانلود کرده و به صورت دستی نصب کنید. برای این کار:
۱. به <code><nowiki>https://download.docker.com/linux/ubuntu/dists</nowiki></code> بروید و
۲. موتور داکر را نصب کنید و مسیر کد زیر را به مسیری که بسته مربوط به موتور داکر را دانلود کردهاید تغییر دهید:<syntaxhighlight lang="bash">
$ sudo dpkg -i /path/to/package.deb
</syntaxhighlight>Daemon داکر به طور خودکار شروع به کار خواهد کرد.
۳. با
$ sudo docker run hello-world
</syntaxhighlight>
الان موتور داکر نصب شده و در حال اجراست. docker group ایجاد شده اما کاربری به آن اضافه نشده. شما برای اجرای
== چگونه باید اپلیکیشن خود را به یک کانتینر اضافه کنیم؟ ==
زمانی که شما container مورد نظر خودتان را پیدا کردید قطعا میخواهید آن را به دلخواه خود تغییر دهید و نیازمندیهای اپلیکیشن خود را به آن اضافه کنید. اینجا
داکرفایل مشخص میکند که کانتینر شما چگونه باشد، یعنی از چه Image ای به عنوان پایه استفاده کند و چه تغییراتی روی آن اعمال کند و هنگام اجرا چه دستوراتی را اجرا کند.
سطر ۱۰۵ ⟵ ۱۰۷:
# Execute the command yarn start
CMD ["yarn", "start"]
</syntaxhighlight>از روی این داکرفایل یک Image جدید ساخته شده و اجرا میشود. میتوان از روی یک Image که در اینجا
با ساختن یک Image که تنظیمات شخصی خود را روی آن اعمال میکنیم، میتوانیم هر بار یک کانتینر با تنظیمات شخصیسازیشده را بدون دوبارهکاری اجرا کنیم.<ref>{{یادکرد وب|عنوان=mostafaghadimi/web_workshop|نشانی=https://github.com/mostafaghadimi/web_workshop|وبگاه=GitHub|بازبینی=2020-12-14|کد زبان=en}}</ref>
سطر ۱۴۶ ⟵ ۱۴۸:
داکرهاب، سرویس ارائه شدهی شرکت Docker، مخزنی از image های آمادهی داکر است. در این مخزن هزاران برنامه وجود دارد که میتوان به آن image افزود.
هر فردی میتواند image های خود را با دیگران به اشتراک بگذارد. برای این کار میبایست
== Docker Swarm ==
'''Docker Swarm چیست؟''' یک Docker Swarm گروهی از ماشینهای مجازی یا فیزیکی است که اپلیکیشن داکر را اجرا میکنند و همچنین برای پیوستن به همدیگر در یک دسته (خوشه یا Cluster) پیکربندی (Configuration) میشوند. وقتی گروهی از ماشینها با هم کلاستر میشوند شما میتوانید
'''استفاده Docker Swarm برای چیست؟''' Docker Swarm ابزاری است برای تنظیم
یکی از مزیتهای کار با Docker Swarm، دسترسی بالای آن روی اپلیکیشنهاست. در یک Docker Swarm به لحاظ نوعی، چندین
== جستارهای وابسته ==
|