جدول محتوایی
دستورات Docker ps
رایج ترین دستور Docker نیز یک فرمان همه کاره است. چند کاربرد دستور docker ps را بیاموزید.
یکی از اولین دستورات Docker که استفاده می کنید دستور docker ps است. کانتینرهای در حال اجرا را نشان می دهد:
docker ps
در واقع، اجرای این دستور فهرستی از کانتینرهای در حال اجرا و شناسه کانتینر منحصربفرد آنها، نام تصویر، فرمانی که در حال اجرا است، زمان از زمان اجرای آن (uptime) و پورت هایی که استفاده می کند به شما می دهد.
اما شما آپشن های بیشتر برای کار با آن دارید. می توانید کانتینر متوقف شده را نمایش دهید، نتیجه را فیلتر کنید یا فقط شناسه های کانتینر را نمایش دهید.
بیایید کمی دقیق تر به این دستور ضروری Docker نگاه کنیم.
دستور 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 را می دانید، در بخش نظرات منتظرتان هستیم.
ببخشید میشه یکم بیشتر توضیحات بدید در مورد بخش دوم
کارتون خوبه سپاسگذارم
ممنون جالب بود
سلام به تیم ایرانکاسرور ممنون از پست خوبتون
ایرانیکاسرور همیشه عالی هستید
عالی مثل همیشه
خوب هستی این مطالبی که قرار دادید عالی بود اما یک نکته خدمت شما عرض کنم اینکه برخی کلمات به هم چسپیده شده اینو درست کنید