لیست کردن کانتینرهای داکر

یادگیری نحوه مدیریت موثر کانتینر‌های Docker یک مهارت مهم است. در این مطلب، همه چیزهایی را که باید بدانید، از دستورات اولیه گرفته تا تکنیک‌های پیشرفته و فهرست کردن کانتینرهای Docker را پوشش خواهیم داد. مطالعه این مطلب به شما کمک می‌کند تا گردش کار خود را بهینه کرده و کارایی سیستم خود را افزایش دهید.


چرا کانتینرهای داکر را لیست کنیم؟

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

مزایای Containerization کمک می‌کند تا به عنوان یک فناوری تحول آفرین در توسعه و استقرار نرم افزار برجسته شود؛ بیایید مزایای کلیدی کانتینرسازی را بررسی کنیم و ببینیم که چگونه توسعه برنامه مدرن را شکل داده است

در حالی که Docker در توسعه برنامه به شما کمک می‌کند، مدیریت این کانتینرها اغلب در صورت نداشتن ابزار و دستورات مناسب می‌تواند سخت و دشوار شود. بنابراین، بیایید ببینیم که چگونه لیست کردن کانتینرهای Docker می‌تواند به ما در مدیریت آنها کمک کند.

  • مانیتورینگ: اگر کانتینرهای docker را به طور مرتب لیست کنید، می‌توانید کانتینرهایی را که در حال اجرا هستند مانیتور نموده و وضعیت آنها را در یک نگاه مشاهده کنید.
  • عیب‌یابی: وقتی مشکل پیش می‌آید، می‌توانید کانتینرهای docker را لیست نموده تا مشخص کنید کدام یک تحت تاثیر قرار گرفته‌اند و لاگ‌ها و جزئیات لازم را برای حل مشکل جمع‌آوری کنید.
  • مدیریت منابع سیستم: با لیست کردن همه کانتینرهای فعال و غیر فعال، می‌توانید منابع سیستم را به طور موثرتری مدیریت کنید. به این ترتیب، می‌توانید مطمئن شوید که هیچ کانتینری بیش از سهم عادلانه خود از حافظه سیستم و زمان پردازنده مصرف نمی‌کند.


اکنون که دلیل لیست کردن کانتینرهای Docker را می‌دانید، اجازه دهید برخی از برنامه‌های کاربردی آن را در دنیای واقعی ببینیم:

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

اگر به نحوه لیست کردن کانتینرهای docker تسلط داشته باشید، می‌توانید وظایف عملیاتی مختلف را ساده کنید. چه در حال استقرار برنامه‌های جدید، بررسی برنامه‌های موجود یا انجام تعمیرات معمولی باشید، درک نحوه لیست کردن موثر کانتینرهای Docker یک مهارت اساسی در استفاده کارآمد از Docker است.

دستورات پایه برای لیست کردن کانتینرهای Docker

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

docker ps

دستور docker ps پر استفاده‌ترین دستور برای لیست کردن کانتینرهای Docker است. به‌طور پیش‌فرض، فهرستی از تمام کانتینرهای در حال اجرا را به شما نشان می‌دهد. با تایپ docker ps در خط فرمان، کانتینرهای فعال، شناسه‌های آنها، ایمیج‌ها، فرمانی که برای ایجاد آنها استفاده شده است، زمان ایجاد، وضعیت، پورت‌ها و نام‌ها نمایش داده می‌شود.

در حالی که docker ps به تنهایی قدرتمند است، می‌توانید گزینه‌های مختلفی را برای بهینه سازی خروجی به آن اضافه کنید:

  • لیست همه کانتینرها: به طور پیش فرض، docker ps فقط کانتینرهای در حال اجرا را نشان می‌دهد. اگر می‌خواهید همه کانتینرها (از جمله کانتینرهای متوقف شده) را لیست کنید، می‌توانید از فلگ -a یا -all استفاده کنید:


docker ps -a 

 

  • فیلتر کردن خروجی: اگر می‌خواهید کانتینرهای خاصی را بر اساس وضعیت، نام یا سن پیدا کنید، می‌توانید از گزینه - filter استفاده کنید. به عنوان مثال، برای پیدا کردن همه کانتینرهایی که در حال حاضر متوقف شده‌اند:

docker ps --filter "status=exited"

  • شخصی‌سازی خروجی: گزینه format – به شما امکان می‌دهد خروجی را با استفاده از الگوهای Go شخصی سازی کنید. به این ترتیب، می‌توانید خروجی را در اسکریپت‌ها تجزیه کرده یا به سادگی اطلاعات را به مواردی که بیشتر مفید می‌دانید محدود کنید. برای مثال، فقط برای نشان دادن شناسه‌ها و نام‌های کانتینر:

docker ps --format "{{.ID}}: {{.Names}}"


همانطور که می‌بینید، دستور اصلی که می‌توانید برای لیست کردن کانتینرهای docker استفاده کنید بسیار آسان و ساده است. درک این دستورات و گزینه‌ها به شما امکان می‌دهد تا کانتینرهای Docker را به طور موثرتری لیست نموده و به شما در مدیریت کانتینرها کمک می‌کند.

سرور مجازی لینوکس یک ماشین مجازی کامل است که امکان دسترسی SSH طبق آموزش را به آن خواهید داشت.
خرید سرور مجازی لینوکس در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.
آیا می‌دانید در پارسدو می‌توان سرور مجازی Docker بر بستر دبیان 11 سفارش داد؟


تکنیک‌های پیشرفته برای لیست کردن کانتینرهای Docker

هنگامی که در کار با دستورات ابتدایی برای لیست کردن کانتینرهای Docker مسلط شدید، می‌توانید با تکنیک‌های پیشرفته کار کنید تا مدیریت Docker خود را حتی بیشتر کنید.

استفاده از فیلترهای پیشرفته

گزینه filter – دستور docker ps بسیار متنوع است و می‌توانید از آن برای ایجاد پرس و جوهای پیچیده در مورد کانتینر خود استفاده کنید. در اینجا چند تکنیک پیشرفته فیلتر وجود دارد:

  • فیلتر بر اساس شبکه: اگر می‌خواهید کانتینرهای متصل به یک شبکه خاص را پیدا کنید، از موارد زیر استفاده کنید:

docker ps --filter "network=bridge"

  • فیلتر بر اساس حجم: برای دیدن همه کانتینرها با استفاده از یک حجم خاص:

docker ps --filter "volume=/your/volume"

 

  • ترکیب فیلترها: همچنین می‌توانید چندین فیلتر را با هم ترکیب نموده تا جستجوی خود را محدود کنید. به عنوان مثال، برای پیدا کردن کانتینرهایی که هم exited شده‌اند و هم بر اساس ایمیج اوبونتو هستند:

docker ps --filter "status=exited" --filter "ancestor=ubuntu"

سفارشی کردن خروجی با قالب بندی پیشرفته

اگر نیاز به پردازش لیست‌های کانتینر در اسکریپت دارید یا به سادگی می‌خواهید یک ویوی مناسب‌تر داشته باشید، می‌توانید از گزینه format – استفاده کنید. این گزینه به شما امکان می‌دهد دقیقا مشخص کنید که کدام ویژگی از کانتینرها لیست شود که از زبان قالب Go استفاده می‌کند.

  • ستون های سفارشی: به جای خروجی کامل، می توانید ویژگی‌های خاص را فهرست کنید:

docker ps --format "{{.ID}}: {{.Image}}: {{.Command}}"

  • ایجاد جداول: می‌توانید جداول خود را برای خروجی تمیزتر ایجاد کنید، به ویژه زمانی که با کانتینرهای زیادی سروکار دارید مفید است:

docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}"


استفاده از Docker Inspect برای اطلاعات دقیق

در حالی که docker ps برای فهرست کردن کانتینرها مفید است، Docker Inspect بینش عمیق‌تری را در مورد یک کانتینر ارائه می‌دهد. می‌توانید از این دو در کنار یکدیگر برای دریافت لیست کانتینر داکر با اطلاعات دقیق‌تر استفاده کنید:

  • بازرسی جزئیات خاص: برای دریافت اطلاعات دقیق در مورد تنظیمات شبکه کانتینر، از موارد زیر استفاده کنید:

docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id

  • بازرسی انبوه با اسکریپت‌ها: اگر نیاز به بازرسی چندین کانتینر دارید، می‌توانید از Docker Inspect برای حلقه روی همه شناسه‌های کانتینر استفاده کنید:

docker ps -q | xargs docker inspect --format '{{ .Id }}: {{ .Name }}'

اتوماسیون با اسکریپت‌های Bash
کاربران حرفه‌ای می‌توانند لیست بندی و بازرسی کانتینرها را با استفاده از اسکریپت‌های bash به صورت اتوماسیون انجام دهند. به عنوان مثال، یک اسکریپت برای لیست کردن همه کانتینرها و آدرس‌های IP آنها ممکن است به شکل زیر باشد:

#!/bin/bash
docker ps -q | while read line; do
docker inspect --format '{{ .Id }}: {{ .NetworkSettings.IPAddress }}' $line
done


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


جمع‌بندی

یادگیری نحوه لیست کردن کانتینرهای Docker برای هر کسی که می‌خواهد استفاده از Docker را بهینه و فرآیندهای DevOps خود را ساده‌سازی کند، مهم است. این مطلب معرفی کاملی برای لیست کانتینرهای docker ارائه می‌دهد. اگر این روش‌ها و تکنیک‌ها را پیاده سازی کنید، روند توسعه اپلیکیشن شما بسیار روان خواهد شد.