زمانی که ما از طریق داکر بخواهیم نرمافزاری را نصب کنیم در واقع آنچه به اصطلاح گفته میشود ما یک Image را نصب کرده ایم، روشهای مختلفی برای نصب imageها وجود دارد و منابع مختلفی برای تهیهآنها پیش بینی شده است.بحث image ها را حتما در پستهای آتی بطور کامل تحت پوشش قرار خواهم داد. در ادامه پست قبلی و نرم افزار کارخواست شده توسط مشتری:
ما قصد داریم یک image برای ngnix را از داکر هاب دانلود و نصب کنیم.
داکر هاب (docker hub) یکی از مخازن اصلی تهیه imageها میباشد
با اجزای فرمان زیر ngnix را دانلود و نصب میکنیم:
docker run --detach \ --name web nginx:latest
زمانی که شما این دستور را اجرا میکنید ، داکر آخرین نسخه ngnix را از مخزن اصلی nginx در داکرهاب نصب و نرمافزار ngnix را اجرا میکند. بعد از نصب و اجرای ngnix ، یک خط از کارکترهای تصادفی در قالب یک رشته بروی ترمینال نوشته میشود مانند این:
7cb5d2b9a7eab87f07182b5bf58936c9947890995b1b94f412912fa822a9ecb5
این کاراکترها یک شناسه منحصر به فرد برای این کانتینر میباشد که فقط برای اجرای ngnix تولید شده است. هر زمان شما از دستور docker run برای ایجاد یک کانتینر جدید استفاده میکنید آن کانتینر شناسهای شبیه به همین میگیرد. این یک روش معمول برای کاربران جهت گرفتن خروجی از یک کانتینر در دل یک متغییر و استفاده در دستورات دیگر است.بعد از نمایش شناسه منحصر به فرد شما خواهید دید که اتفاق دیگری رخ نخواهد داد. به دلیل استفاده از گزینه detach و شروع برنامه در پسزمینه شاهد این اتفاق هستیم.این عمل این را به ما میرساند که برنامه شروع شده به ترمینال الحاق نشده است.
شاید در این لحظه به این فکر میکنید که این برنامه را مانند برنامههای مختلف درون رایانه خودتان فقط یک نسخه میتوانید اجرا کنید، این تفکر اشتباه است و من به شما اجرا تعداد زیادی نسخه از یک نرمافزار را آموزش خواهم داد.
استفاده از گزینه detach راهکار بسیار با کیفیتی برای اجرا برنامهها در پسزمینه (Background) است.این نوع برنامهها Daemon نامیده میشوند. یک Daemon به طور عمومی برنامهای است که محیط اجرا که با برنامههای دیگر، انسانها و ساختارها تحت یک شبکه و یا ابزارهای و پروتکلها ارتباط میگیرد.
زمانی که میخواهید یک برنامه را در پسزمینه با داکر تحت یک Daemon اجرا کنید از سوئیچ detach-- یا d- استفاده کنید.
برنامه دیگری که مشتری شما نیاز داشت برنامه پستالکترونیکی بود که منتظر میماند تا یک ارتباط با آن برقرار شود و مشکل را در قالب یک پست الکترونیکی ارسال کند.
با دنبال کردن دستور زیر علاوه بر نصب نرمافزار پستالکترونیکی با ساختار آن نیز آشنا شوید:
docker run -d --name mailer dockerinaction/ch2_mailer
با راه اندازی این کانتینر دومین ساختار مورد نیاز مشتری ایجاد شده است. حالا تا اینجا ما دو سیستم از سه سیستم را راهاندازی کردهایم. آخرین بخش ، راه اندازی کانتینر ناظر است که تعاملات سیستم درخواستی توسط آن انجام میشود.
خوب فکر میکنم تا اینجا کافی باشه، من رو دنبال کنید :)