جدول محتوایی

دستورات Docker ps

رایج ترین دستور Docker نیز یک فرمان همه کاره است. چند کاربرد دستور docker ps را بیاموزید.

یکی از اولین دستورات Docker که استفاده می کنید دستور docker ps است. کانتینرهای در حال اجرا را نشان می دهد:

docker ps

خرید VPS ایران

در واقع، اجرای این دستور فهرستی از کانتینرهای در حال اجرا و شناسه کانتینر منحصربفرد آنها، نام تصویر، فرمانی که در حال اجرا است، زمان از زمان اجرای آن (uptime) و پورت هایی که استفاده می کند به شما می دهد.

اما شما آپشن های بیشتر برای کار با آن دارید. می توانید کانتینر متوقف شده را نمایش دهید، نتیجه را فیلتر کنید یا فقط شناسه های کانتینر را نمایش دهید.

بیایید کمی دقیق تر به این دستور ضروری Docker نگاه کنیم.

 

دستور docker ps

 

دستور docker ps

Docker یک نام مستعار برای نشان دادن همه کانتینرهای در حال اجرا با قرارداد نامگذاری دوستانه POSIX دارد. این دستور فرعی ps در docker است. این نام مستعار docker container ls است. همانطور که می توانید حدس بزنید، برای فهرست کردن کانتینرهای docker استفاده می شود.

در اینجا یک مثال از اجرای docker ps را میبینید:

$ docker ps 
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

 

همانطور که می بینید، این دستور جزئیات مربوط به تمام کانتینرهای در حال اجرا را نمایش می دهد.

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

به عنوان یک sysadmin، اغلب از این دستور در یک اسکریپت استفاده می کنید. Docker چند گزینه را ارائه می دهد که می تواند هنگام اجرای docker ps در یک اسکریپت مفید باشد.

 

نمایش همه کانتینرها (نه فقط کانتینرهای در حال اجرا)

همانطور که از دستور ps یونیکس برای نشان دادن فرآیندها (برنامه هایی که در حال اجرا هستند) استفاده می شود، داکر نیز به همین صورت عمل می کند.

اجرای دستور docker ps فقط کانتینرهای docker را نشان می دهد که فعال هستند. اگر یک کانتینر در حال اجرا را متوقف کنید، همچنان وجود دارد، فقط این که دیگر در حال اجرا نیست.

برای مشاهده کانتینرهایی که در حالت توقف هستند، از گزینه –all (یا -a) مانند زیر استفاده کنید:

docker ps --all

 

بهنوان مثال من کانتینر transmission_web را متوقف کردم. بیایید ببینیم در خروجی چه چیزی دریافت می کنیم.

$ docker ps -a
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

 

همانطور که می بینید، گزینه -a نیز یک ظرف متوقف شده را نشان می دهد.

 

برای نتیجه دقیق تر، خروجی داکر ps را فیلتر میکنیم.

دستور docker ps یک گزینه بسیار مفید دارد، –filter (یا به اختصار -f).

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

  • id
  • name
  • label
  • exited
  • status
  • ancestor
  • since
  • volume
  • publish
  • health
  • isolation

من یک محفظه ایجاد کردم که نام آن nextcloud_server است. من می خواهم جزئیات مربوط به کانتینرها را ببینم، اما فقط آنهایی را که با نام آنها جستوجو میکنم. نحوه استفاده از فیلتر نام:

$ docker ps --filter "name=nextcloud_server"
CONTAINER ID   IMAGE       COMMAND                  CREATED       STATUS       PORTS                                   NAMES
58c7013a49c3   nextcloud   "/entrypoint.sh apac…"   3 hours ago   Up 3 hours   0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server

 

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

اجازه دهید از فیلتر id هم استفاده کنیم. من یک کانتینر MariaDB با شناسه “140161b8b139” دارم. برای رسیدن به آن از دستور زیر استفاده خواهم کرد.

$ docker ps --filter "id=140161b8b139"
CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS        PORTS      NAMES
140161b8b139   mariadb   "docker-entrypoint.s…"   15 hours ago   Up 15 hours   3306/tcp   nextcloud_db

 

نشان دادن کانتینرها را به ترتیب ساخت آنها

می‌توانید با استفاده از -latest (یا به اختصار l) ظروف را به ترتیب تاریخ ایجادشان فهرست کنید. آخرین کانتینر در بالا و قدیمی ترین در پایین است.

$ docker ps --latest

چند نکته:

  • خروجی شامل تمام حالت های کانتینر می شود (به این معنی که حتی کانتینرهایی که متوقف شده اند نیز لیست می شوند).
  • هر کانتینری که به عنوان “وابستگی” استفاده می شود، فهرست نخواهد شد.

 

مشاهده id کانتینر ها

فرض کنید در حال نوشتن یک اسکریپت هستید و فقط می خواهید با شناسه های Container سروکار داشته باشید تا بتوانید اقداماتی را روی کانتینرها انجام دهید. برای این کار، می توانید از گزینه –quiet (یا به اختصار -q) استفاده کنید.

در زیر خروجی اجرای docker ps -q را میبینید:

$ docker ps -q
58c7013a49c3
140161b8b139

همانطور که می بینید، خروجی فقط شامل شناسه های Container (از کانتینرهایی است که در حال اجرا هستند).

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

 

19رای - امتیاز 5 ممنون از امتیازی که دادید..!

دسته بندی شده در: