آموزش تصویری

ضروری‌ترین دستورات داکر (Docker) که هر کاربری باید بداند

داکر (Docker) یک پلتفرم قدرتمند است که به کاربران امکان می‌دهد برنامه‌ها را بسازند، اجرا کنند و مدیریت نمایند؛ همه‌ی این کارها درون کانتینرها (Containers) انجام می‌شود. برای انجام کارهایی مثل ساخت ایمیج‌ها (Images)، مدیریت کانتینرها، شبکه‌ها (Networks) و ولوم‌ها (Volumes)، ما از دستورات داکر استفاده می‌کنیم. آشنایی با این دستورات به ما کمک می‌کند تا به شکلی مؤثر و بهینه با برنامه‌های کانتینری کار کنیم.

در این راهنما، مهم‌ترین دستورات داکر را که هر کاربری باید بیاموزد، بررسی خواهیم کرد. هر دستور شامل نحوه‌ی استفاده (Syntax)، مثال‌ها و کاربردهای عملی است تا به شما کمک کند نحوه‌ی کارکرد آن‌ها را در پروژه‌های واقعی درک کنید.

دستورشرح (Description)نحوه‌ی پایه‌ای (Basic Syntax)
docker psنمایش کانتینرهای در حال اجرا.docker ps [OPTIONS]
docker runایجاد و اجرای یک کانتینر جدید از روی یک ایمیج.docker run [OPTIONS] IMAGE
docker stopمتوقف کردن یک کانتینر در حال اجرا.docker stop CONTAINER
docker startازسرگیری یک کانتینر که قبلاً متوقف شده است.docker start CONTAINER
docker restartراه‌اندازی مجدد یک کانتینر برای اعمال تغییرات.docker restart CONTAINER
docker execاجرای یک دستور درون یک کانتینر در حال اجرا.docker exec [OPTIONS] CONTAINER COMMAND
docker logsمشاهده‌ی لاگ‌های یک کانتینر.docker logs [OPTIONS] CONTAINER
docker buildساخت یک ایمیج داکر سفارشی از روی فایل Dockerfile.docker build [OPTIONS] PATH
docker imagesنمایش لیست ایمیج‌های محلی داکر.docker images
docker rmiحذف یک ایمیج داکر.docker rmi IMAGE
docker pullدانلود یک ایمیج از یک رجیستری (مثل Docker Hub).docker pull IMAGE
docker pushارسال (Push) یک ایمیج به یک رجیستری.docker push IMAGE
docker statsنظارت بر مصرف منابع به‌صورت زنده.docker stats [CONTAINER]
docker system pruneحذف کانتینرها، ایمیج‌ها، شبکه‌ها و به صورت اختیاری ولوم‌های بلااستفاده.docker system prune [OPTIONS]
docker compose upاجرای سرویس‌های چندکانتینری تعریف‌شده در فایل کامپوز.docker compose up [OPTIONS]
docker compose downتوقف و حذف سرویس‌های چندکانتینری.docker compose down

حالا بیایید به چند مثال ساده نگاه کنیم تا ببینیم این دستورات در موقعیت‌های واقعی چگونه کار می‌کنند.

۱. نمایش کانتینرهای در حال اجرا: docker ps

دستور docker ps تمام کانتینرهای در حال اجرا را نشان می‌دهد. این دستور مانند یک مدیریت وظایف (Task Manager) برای داکر عمل می‌کند و اطلاعاتی نظیر شناسه‌ی کانتینر (ID)، نام، وضعیت و نگاشت پورت‌ها (Port Mappings) را نمایش می‌دهد.

docker ps

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

docker ps -a

۲. اجرای کانتینر جدید: docker run

دستور docker run برای اجرای یک کانتینر جدید از روی یک ایمیج استفاده می‌شود، که معمولاً اولین قدم در راه‌اندازی یک برنامه است.

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

می‌توانید با استفاده از گزینه‌های مختلف، نحوه‌ی اجرای کانتینر را تنظیم کنید. به‌عنوان مثال، گزینه‌ی -d کانتینر را در پس‌زمینه (Background) اجرا می‌کند تا ترمینال شما آزاد بماند، و گزینه‌ی -p پورت‌ها را بین سیستم شما و کانتینر نگاشت (Map) می‌کند. در اینجا یک مثال ساده آمده است:

docker run -d -p 8080:80 nginx

این دستور یک کانتینر NGINX را در پس‌زمینه اجرا می‌کند و آن را از طریق پورت ۸۰۸۰ سیستم شما قابل دسترسی می‌سازد (پورت ۸۰ داخل کانتینر به ۸۰۸۰ سیستم شما متصل می‌شود). مرورگر خود را باز کرده و به آدرس http://localhost:8080 بروید. اگر همه‌چیز درست کار کند، باید صفحه‌ی پیش‌فرض خوش‌آمدگویی NGINX را ببینید.

۳. بررسی لاگ‌های کانتینر: docker logs

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

docker logs openwebui

۴. دانلود ایمیج: docker pull

دستور docker pull برای دانلود یک ایمیج داکر از یک رجیستری عمومی یا خصوصی، مانند Docker Hub، استفاده می‌شود. زمانی از آن استفاده می‌کنیم که ایمیج مورد نیاز از قبل روی سیستم ما موجود نباشد. این دستور به ما کمک می‌کند تا به‌سرعت ایمیج‌های آماده را بدون نیاز به ساخت آن‌ها از ابتدا به دست آوریم. همچنین می‌توانیم نسخه‌های خاصی را با استفاده از تگ‌ها (Tags) دانلود کنیم تا مطمئن شویم با نسخه‌ی دقیقی که نیاز داریم کار می‌کنیم.

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

docker pull ubuntu:latest

۵. بازرسی کانتینر یا ایمیج: docker inspect

دستور docker inspect اطلاعات فنی دقیق در مورد یک کانتینر یا ایمیج را به شما می‌دهد؛ اطلاعاتی مانند تنظیمات شبکه، ولوم‌های متصل‌شده، متغیرهای محیطی و جزئیات پیکربندی. به‌عنوان مثال، برای بازرسی کانتینر OpenWebUI از این دستور استفاده می‌کنیم:

docker inspect openwebui

این دستور برای اشکال‌زدایی مشکلات پیکربندی یا بررسی ساختار داخلی یک کانتینر بسیار مفید است.

۶. نظارت بر مصرف منابع: docker stats

دستور docker stats به شما امکان می‌دهد تا مصرف شبکه، CPU، حافظه (Memory) و دیسک کانتینرهای در حال اجرا را به‌صورت بلادرنگ (Real-Time) ردیابی کنید.

docker stats

همچنین می‌توانید فقط یک کانتینر خاص را نظارت کنید:

docker stats openwebui

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

۷. اجرای برنامه‌های چندکانتینری: docker compose up

اگر پروژه‌ی شما از چندین سرویس مانند یک API بک‌اند، یک برنامه‌ی فرانت‌اند و یک پایگاه داده استفاده می‌کند، می‌توانید همه‌ی آن‌ها را با Docker Compose مدیریت کنید. به‌عنوان مثال، می‌توانید از دستور زیر برای راه‌اندازی تمام سرویس‌های تعریف‌شده در فایل داکر خود استفاده کنید:

docker compose up -d

در اینجا، فلگ -d سرویس‌ها را در پس‌زمینه اجرا می‌کند. این دستور مدیریت برنامه‌های پیچیده را تنها با یک فرمان آسان‌تر می‌کند.

۸. پاکسازی منابع داکر: docker system prune

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

docker system prune

پس از اجرای دستور، y را تایپ کنید تا کانتینرهای متوقف‌شده، شبکه‌های بدون استفاده، ایمیج‌های آویزان و کش (Cache) ساخت بلااستفاده پاک شوند.

اگر می‌خواهید همه‌چیز، از جمله ولوم‌های بدون استفاده و تمام ایمیج‌های بدون استفاده را حذف کنید، می‌توانید از دستور زیر استفاده نمایید:

docker system prune -a --volumes

این کار سیستم شما را تمیز نگه می‌دارد و از بروز مشکلات فضای ذخیره‌سازی جلوگیری می‌کند.

۹. مشاهده‌ی راهنمای دستورات: docker --help

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

docker --help

به همین ترتیب، می‌توانید با مشخص کردن نام دستور، به صفحه‌ی راهنمای یک فرمان خاص دسترسی پیدا کنید. به‌عنوان مثال، دستور زیر فلگ‌های موجود، زیردستورها (Subcommands) و توضیحات مفصل را برای دستور docker ps برمی‌گرداند:

docker ps --help

جمع‌بندی

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

بیشتر بخوانید:

داکر در مقابل ماشین‌ مجازی: از کدام استفاده کنیم؟ چه تفاوتی دارند؟
اجرای داکر در ویندوز بدون دردسر – روش WSL 2 برای توسعه سریع
نحوه ادغام داکر در Visual Studio Code

وحید خاکپور

متولد 76 . مبتدی در همه چیز. علاقه مند به یادگیری و به اشتراک گذاشتن تجربه های مفید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *