دستورات پرکاربرد داکر

دستورات پرکاربرد داکر

در مطالب گذشته با مفاهیم ابتدایی داکر آشنا شدیم در این مقاله سعی میکنیم به دستوراتی بپردازیم که کاربرد بیشتری در استفاده از داکر دارند

برای یادگیری و امتحان دستوراتی که در ادامه توضیح میدهیم بهتر است دارکر را نصب کنید.

دستور pull

برای دانلود کردن یک image جدید میتوانید از دستور pull استفاده کنید. این دستور تمام لایه های یک تصویر را، در صورتی که قبلا روی ماشین شما دانلود نشده باشند، از کتابخانه داکر دانلود میکند:

    docker pull debian

این نکته که تصاویر داکر میتوانند لایه های مشترک با یکدیگر داشته باشند تاثیر زیادی در افزایش سرعت دانلود و اجرای کانتینرها دارد.
دستور run

برای ایجاد یک کانتینر جدید و اجرای یک shell که به شما یک خط فرمان (command line) تازه در داخل همان کانتینر میدهد، میتوانید دستور زیر را اجرا کنید:

    docker run -ti --name my_container_name debian /bin/bash

پارامتر -ti باعث میشود که کانتینر شما به محض اجرای دستور، که در این مثال /bin/bash است، خروجیهای آن را برای شما چاپ کند و در صورت نیاز منتظر ورودی از صفحه کلید بماند. در این حالت با خروج از این shell، مثلا با اجرای دستور exit، اجرای کانتینر نیز متوقف میشود.

اگر بخواهید فایلهای کانتینر بلافاصله پس از توقف، از روی سیستم کاملا حذف شوند میتوانید از پارامتر --rm استفاده کنید:

    docker run --rm -ti debian /bin/bash

در مقابل اگر بخواهید کانتینری به محض اجرا به پس زمینه برود و همچنان به اجرای دستور ادامه دهد میتوانید از پارامتر -d استفاده کنید:

    docker run -d --name my_server nginx

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

این دستور کانتینرهای در حال اجرا را به شما نشان میدهد:

    docker ps

همچنین اگر از پارامتر -a استفاده کنید میتوانید کانتینرهای متوقف شده را نیز مشاهده کنید.
دستور logs

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

    docker logs my_server

اگر میخواهید منتظر بمانید تا خروجیهای جدید را به محض تولید شدن مشاهده کنید میتوانید از پارامتر -f استفاده کنید.
دستور exec

اگر کانتینری در حال اجرا باشد میتوانید با دستور زیر یک shell در داخل آن اجرا کنید که به شما یک خط فرمان در داخل همان کانتینر برای اجرای دستورات جدید میدهد:

    docker exec -ti my_server /bin/sh

این کار عموما برای خطایابی در زمان تست استفاده میشود و برای سیستمهای production توصیه نمیشود.
دستور stop

اگر کانتینری در حال اجرا باشد میتوانید با دستور زیر آن را متوقف کنید:

    docker stop my_server

دقت کنید که در این حالت اجرای کانتینر متوقف میشود ولی فایلهای آن همچنان روی سیستم باقی میمانند و قابل بازیابی هستند. با استفاده از دستور docker ps -a میتوانید کانتینر متوقف شده را نیز مشاهده کنید.
دستور kill

اگر کانتینری به دستور stop به خوبی پاسخ ندهد، یعنی اجرای آن متوقف نشود، میتوانید از این دستور برای توقف کامل آن استفاده کنید:

    docker kill my_server

در این حالت نیز همچنان فایلهای کانتینر روی سیستم باقی میمانند.

اگر مثلا در انتهای روز قصد دارید با یک دستور تمامی کانتینرهای روی سیستمتان را متوقف کنید، میتوانید این فرمان را اجرا کنید:

    docker kill $(docker ps -q)

دستور rm

این دستور فایلهای یک کانتینر متوقف شده را از روی سیستم پاک میکند:

    docker rm my_server

برا حذف تمام فایل ها  که، شامل آنهایی که به صورت volume برای کانتینر تعریف شده اند، حذف کنید از پارامتر -v استفاده کنید.

در مواقعی هم که میخواهید تمامی کانتینرهای متوقف شده را یکباره حذف کنید میتوانید از این دستور استفاده کنید:

    docker rm $(docker ps -a -q)

دستور rmi

برای حذف یک تصویر (image) داکر که دیگر نیازی به آن ندارید این دستور را اجرا کنید:

    docker rmi my_image_name

در نهایت اگر روی سیستم شما با کمبود فضای دیسک سخت مواجه شده اید میتوانید با دستور زیر تمامی تصاویری را که به صورت موقت تولید شده اند و معمولا کاربرد دایمی ندارند پاک کنید:

    docker rmi $(docker images -q -f dangling=true)

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

اگر به مفاهیم داکر علاقه مند هستید میتواینید به سایت الستیکو مراجعه کنید و از مقالات مفید این سایت استفاده کنید

هادی یدالهی

هادی یدالهی

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


0 نظر درباره‌ی این پست نوشته شده است.

ثبت نظر