داکر در عمل :: لیست ، متوقف، راه‌اندازی مجدد و نمایش خروجی کانتینرها(ادامه مثال پایش وب)

سلام ، وقت بخیر همونطور که بخاطر دارین در پست قبلی هر سه ماشین مورد نیاز مثال مشتری را طبق شکل زیر راه‌اندازی کردیم و قرار شد قبل تحویل به مشتری حتما باید کانتینرها تست شوند

اولین کاری که برای تست میاز دارید این است که چک کنید چه کانتینرهای فعالی دارید، دستور زیر کانتینرهای در حال اجرا را به شما نمایش می دهد

docker ps

با اجرای دستور بالا اطلاعات زیر نمایش داده می‌شود:

  • شناسه کانتینر
  • تصویر (image) استفاده شده
  • دستور اجرا شده در کانتینر
  • مدت زمان ایجاد
  • مدت زمان اجرا
  • پورت‌های شبکه
  • نام کانتینر

در ایم مرحله شما باید سه کانتینر با نام‌های web، mailer و agent در حال اجرا داشته باشید، البته ممکن است از دستورات اشتباهی استفاده کرده باشید و یا اشتباهی یکی از آنها را متوقف کرده باشید، البته که داکر دارای منطق راه‌اندازی مجدد آنها است.مطابق دستور زیر یکبار راه اندازی مجدد کانتینرهای مشتری را تمرین می‌کنیم:

docker restart web/mailer/agent

حالا شما قطعا سه ماشین در حال اجرا دارید و باید تست کنید که بدرستی کار می‌کنند یا خیر. بهترین روش برای انجام اینکار، بررسی فایل‌های لاگ هر کانتینر می‌باشد، با کانتینر وب شروع می‌کنیم:

docker logs web

اگر کانتینر بدرستی و با صحت کامل کار کند پیام Get HTTP/1.0 200 را خواهیم داشت و در ترمینال چاپ می‌شود. در هر بار تست یک خط جدید به لاگ اضافه می‌شود.

فرمان بالا جهت بررسی صحت عملکرد مفید است اما تکیه بر آن می‌تواند برای شما خطرناک باشد. هر چیزی که توسط برنامه‌ها در stdin و stdout نوشته می‌شود در این لاگ‌ها ثبت می‌شود. البته از آنجا که این لاگ فایل‌های همراه با چرخه عمر یک کانتینر رشد می‌کنند، استفاده طولانی مدت از آنها می‌تواند مشکلاتی را برای پردازش‌های مختلف در طولانی مدت ایجاد کند. راهکار بهتر استفاده از volumes است که در ادامه بحث خواهد شد.

شما با همین روش لاگ‌خوانی می‌توانید کانتینرهای دیگر مثال را نیز بررسی کنید. برای تکمیل بحث ،لاگ‌های دو کانتینر دیگر را نیز بررسی می‌کنیم:

docker logs mailer/agent

برای نمایش پیوسته لاگ از سوییچ follow-- یا f- استفاده می‌کنیم و برای توقف Ctrl+C را می‌زنیم.

حالا که شما اعتبار کانتینرها را بررسی کردید و دید آنها در حال اجرا هستند، می‌بایستی بررسی کنیم با توقف وب سرور آیا کانتینر ناظر ما (agent) متوجه می‌شود وب سرور قطع شده است یا خیر.

خوب حالا وارد عمل می‌شویم و دستورات زیر را برای تست وارد می‌کنیم:

docker stop web #A
docker logs mailer #B

بخش A# : وب سرور با توجه به دستور متوقف می‌شود.

بخش B#: چند ثانیه منتظر بمانید و لاگ‌های کانتینر پست‌الکترونیکی (mailer) را بررسی نمایید.

به انتهای خط لاگ mailer نگاه کنید و یک فایل مانند زیر می‌بینید

Send Mail To: [email protected] Message: Service is Down!

خوب اگر تا اینجا تمامی دستورات را با دقت و با اصول آموزش داده پیش رفته باشید می‌توان گفت شما توانسته‌اید بخش عمده‌ای از کارخواست مشتری را انجام بدهید. در ادامه به یک سری از مسائل زیرساختی می‌پردازم که با اکتساب دانش آن می‌توانید که تحویل غنی تر به مشتری داشته باشید.

برای امروز کافیه! کلی کار مشتری مونده سریعتر آماده گام‌های بعدی سفارش بشید.