معرفی دستورات داکر برای هر توسعهدهنده، DevOps Engineer، مدیر سرور یا تیم فنی که با کانتینرها کار میکند، یک نیاز پایهای است. داکر فقط یک ابزار برای اجرای ساده برنامهها نیست؛ داکر کمک میکند نرمافزارها در محیطهای قابل حمل، قابل تکرار و قابل کنترل اجرا شوند. اما قدرت واقعی داکر زمانی مشخص میشود که کاربر با دستورات اصلی و کاربردی آن آشنا باشد. اگر فقط بدانید داکر چیست اما ندانید چطور image بسازید، container اجرا کنید، log بگیرید، شبکه بسازید یا volume مدیریت کنید، در عمل نمیتوانید از آن درست استفاده کنید. به همین دلیل، این مقاله با هدف معرفی دستورات داکر نوشته شده تا 20 دستور مهم و کاربردی را به زبان ساده و عملی بررسی کند.
دستور اول: docker version
در شروع معرفی دستورات داکر بهتر است با دستور docker version آشنا شویم. این دستور نسخه Docker Client و Docker Server را نمایش میدهد و مشخص میکند آیا داکر بهدرستی روی سیستم نصب شده یا نه. وقتی داکر نصب میکنید، اولین تست منطقی همین دستور است، چون اگر کلاینت و سرور داکر با هم ارتباط نداشته باشند، بسیاری از دستورات بعدی کار نمیکنند. خروجی این دستور معمولاً شامل نسخه، API version، سیستمعامل و جزئیات build است. در مسیر معرفی دستورات داکر، این دستور ساده اما مهم است، چون قبل از اجرای هر پروژه باید مطمئن شوید محیط داکر آماده و سالم است.
دستور دوم: docker info
یکی دیگر از دستورات پایه در معرفی دستورات داکر، دستور docker info است. این دستور اطلاعات کاملتری درباره وضعیت داکر روی سیستم شما نمایش میدهد؛ از تعداد کانتینرها و ایمیجها گرفته تا نوع storage driver، runtime، منابع سیستم و تنظیمات کلی. اگر داکر روی سرور بهدرستی کار نمیکند یا میخواهید وضعیت کلی محیط را بررسی کنید، docker info یکی از بهترین نقطههای شروع است. این دستور بیشتر از docker version اطلاعات عملیاتی میدهد و برای عیبیابی بسیار کاربردی است. در معرفی دستورات داکر، این دستور نقش یک گزارش کلی از وضعیت محیط داکر را دارد.
دستور سوم: docker pull
در معرفی دستورات داکر، دستور docker pull یکی از پرمصرفترین دستورات است. این دستور برای دانلود image از Docker Hub یا registryهای دیگر استفاده میشود. مثلاً وقتی میخواهید nginx، postgres، redis یا python را اجرا کنید، ابتدا باید image مربوط به آن را دریافت کنید. دستور docker pull nginx آخرین نسخه nginx را دانلود میکند، اما اگر نسخه خاصی بخواهید میتوانید tag مشخص کنید؛ مثل docker pull postgres:16. اهمیت این دستور در این است که بیشتر کارهای داکر با image شروع میشود. بنابراین، در معرفی دستورات داکر باید docker pull را یکی از پایههای اصلی کار با ایمیجها دانست.
دستور چهارم: docker images
برای ادامه معرفی دستورات داکر باید دستور docker images را شناخت. این دستور لیست imageهایی را که روی سیستم شما وجود دارند نمایش میدهد. خروجی آن شامل نام repository، tag، image ID، زمان ساخت و حجم image است. وقتی چند پروژه مختلف روی یک سیستم کار میکنند، تعداد imageها زیاد میشود و مدیریت آنها اهمیت پیدا میکند. با این دستور میتوانید بفهمید چه imageهایی قبلاً دانلود یا ساخته شدهاند و آیا لازم است بعضی از آنها حذف شوند یا نه. در معرفی دستورات داکر، این دستور برای مدیریت فضای دیسک و بررسی وضعیت imageها بسیار مهم است.
دستور پنجم: docker run
یکی از اصلیترین بخشهای معرفی دستورات داکر، دستور docker run است. این دستور برای ساخت و اجرای container از روی یک image استفاده میشود. مثلاً docker run nginx یک کانتینر nginx اجرا میکند. اگر بخواهید پورت را به سیستم میزبان وصل کنید، میتوانید از -p استفاده کنید؛ مثل docker run -p 8080:80 nginx. اگر بخواهید کانتینر در پسزمینه اجرا شود، گزینه -d را اضافه میکنید. دستور docker run امکانات زیادی دارد و میتواند نام کانتینر، متغیر محیطی، volume، network و policy اجرا را هم مشخص کند. در معرفی دستورات داکر، این دستور قلب اجرای کانتینرهاست.
دستور ششم: docker ps
در معرفی دستورات داکر، دستور docker ps برای مشاهده کانتینرهای در حال اجرا استفاده میشود. وقتی چند سرویس مختلف مثل دیتابیس، وبسرور و بکاند را با داکر بالا آوردهاید، باید بدانید کدام کانتینرها فعال هستند. این دستور اطلاعاتی مثل container ID، image، command، زمان اجرا، وضعیت، پورتها و نام کانتینر را نشان میدهد. اگر گزینه -a را اضافه کنید، همه کانتینرها، حتی کانتینرهای متوقفشده هم نمایش داده میشوند. در معرفی دستورات داکر، docker ps یکی از مهمترین ابزارهای روزمره برای کنترل وضعیت
سرویسهاست.
دستور هفتم: docker stop
یکی از دستورات ضروری در معرفی دستورات داکر، دستور docker stop است. این دستور برای متوقف کردن یک کانتینر در حال اجرا استفاده میشود. کافی است نام یا ID کانتینر را وارد کنید؛ مثل docker stop my-nginx. داکر تلاش میکند کانتینر را بهصورت کنترلشده متوقف کند تا پردازش داخل آن فرصت خاموش شدن داشته باشد. این دستور برای مدیریت سرویسها بسیار مهم است، چون نباید همیشه کانتینر را با روشهای ناگهانی حذف یا kill کرد. در معرفی دستورات داکر، docker stop یک دستور ساده اما حیاتی برای مدیریت صحیح چرخه عمر کانتینرهاست.
دستور هشتم: docker start
در ادامه معرفی دستورات داکر، دستور docker start برای اجرای دوباره کانتینر متوقفشده استفاده میشود. وقتی کانتینری قبلاً ساخته شده اما در حال حاضر خاموش است، نیازی نیست دوباره از صفر با docker run آن را بسازید. کافی است از docker start container_name استفاده کنید. این دستور همان کانتینر قبلی را با تنظیمات قبلی بالا میآورد. تفاوت مهم آن با docker run همین است: docker run کانتینر جدید میسازد، اما docker start کانتینر موجود را اجرا میکند. در معرفی دستورات داکر، این تفاوت برای جلوگیری از ساخت کانتینرهای تکراری بسیار مهم است.
دستور نهم: docker restart
دستور docker restart هم در معرفی دستورات داکر جایگاه مهمی دارد، چون برای راهاندازی مجدد کانتینر استفاده میشود. این دستور ابتدا کانتینر را متوقف میکند و سپس دوباره اجرا میکند. وقتی یک سرویس داخل کانتینر دچار مشکل شده یا تنظیماتی را تغییر دادهاید و نیاز به restart دارید، این دستور بسیار کاربردی است. مثلاً docker restart redis-server کانتینر Redis را دوباره راهاندازی میکند. در محیطهای توسعه و حتی سرورهای واقعی، restart کردن کانتینرها یک کار رایج است. بنابراین، در معرفی دستورات داکر، docker restart یکی از دستورات پرکاربرد عملیاتی محسوب میشود.
دستور دهم: docker rm
در معرفی دستورات داکر باید دستور docker rm را هم جدی گرفت. این دستور برای حذف کانتینرهای متوقفشده استفاده میشود. اگر چندین بار کانتینر بسازید و متوقف کنید، سیستم شما بهمرور پر از کانتینرهای قدیمی و بیاستفاده میشود. با docker rm container_name میتوانید آنها را حذف کنید. اگر کانتینر در حال اجرا باشد، ابتدا باید آن را stop کنید یا با گزینه force حذف کنید. البته استفاده از force باید با دقت باشد. در معرفی دستورات داکر، این دستور برای تمیز نگه داشتن محیط توسعه و آزاد کردن منابع اهمیت زیادی دارد.
دستور یازدهم: docker rmi
برای مدیریت imageها در معرفی دستورات داکر، دستور docker rmi ضروری است. این دستور imageهای غیرضروری را حذف میکند. وقتی imageهای زیادی دانلود یا build میکنید، فضای دیسک بهسرعت پر میشود. مثلاً با docker rmi nginx:latest میتوانید image مربوط به nginx را حذف کنید، البته به شرطی که کانتینری از آن image وابسته نباشد. اگر image در حال استفاده باشد، داکر اجازه حذف مستقیم نمیدهد. در معرفی دستورات داکر، docker rmi کنار docker images قرار میگیرد و برای کنترل فضای ذخیرهسازی بسیار کاربردی است.
دستور دوازدهم: docker logs
یکی از مهمترین دستورات در معرفی دستورات داکر، دستور docker logs است. این دستور خروجی log کانتینر را نمایش میدهد و برای دیباگ بسیار ضروری است. اگر یک اپلیکیشن داخل کانتینر اجرا شده و خطا میدهد، اولین کاری که باید انجام دهید بررسی لاگهاست. مثلاً docker logs my-app خروجی برنامه را نشان میدهد. با گزینه -f میتوانید لاگ را بهصورت زنده دنبال کنید؛ مثل docker logs -f my-app. در معرفی دستورات داکر، این دستور برای توسعهدهندهها و DevOpsها یکی از مهمترین ابزارهای عیبیابی روزمره است.
دستور سیزدهم: docker exec
در معرفی دستورات داکر، دستور docker exec برای اجرای دستور داخل یک کانتینر فعال استفاده میشود. برای مثال اگر بخواهید وارد shell یک کانتینر شوید، میتوانید از docker exec -it container_name bash یا در بعضی imageهای سبک از sh استفاده کنید. این دستور زمانی کاربرد دارد که بخواهید فایلها را بررسی کنید، تنظیمات را ببینید، دستور داخلی اجرا کنید یا وضعیت سرویس داخل کانتینر را بررسی کنید. البته نباید تغییرات دائمی مهم را فقط دستی داخل کانتینر انجام دهید، چون کانتینرها ذاتاً قابل بازسازی هستند. در معرفی دستورات داکر، docker exec ابزار ورود و بررسی داخل کانتینر است.
دستور چهاردهم: docker build
یکی از بخشهای کلیدی معرفی دستورات داکر، دستور docker build است. این دستور برای ساخت image از روی Dockerfile استفاده میشود. وقتی پروژه شما Dockerfile دارد، میتوانید با دستوری مثل docker build -t my-app:1.0 . یک image جدید بسازید.
گزینه -t برای تعیین نام و tag استفاده میشود و نقطه آخر یعنی Dockerfile در مسیر فعلی قرار دارد. این دستور برای پروژههای واقعی بسیار مهم است، چون شما معمولاً فقط image آماده دانلود نمیکنید، بلکه image مخصوص اپلیکیشن خودتان را میسازید. بنابراین، در معرفی دستورات داکر، docker build پل ارتباطی بین کد پروژه و اجرای کانتینری است.
دستور پانزدهم: docker tag
در ادامه معرفی دستورات داکر باید دستور docker tag را بشناسیم. این دستور برای نامگذاری یا نسخهگذاری یک image استفاده میشود. برای مثال، وقتی image پروژه را ساختهاید، میتوانید آن را با tag مناسب برای ارسال به registry آماده کنید. دستور docker tag my-app:latest registry.example.com/my-app:1.0 یک tag جدید برای image میسازد. tagها در مدیریت نسخهها بسیار مهم هستند، چون نباید همیشه فقط از latest استفاده کرد. در پروژههای حرفهای، هر release باید tag مشخص داشته باشد. در معرفی دستورات داکر، این دستور برای نظم در انتشار و مدیریت نسخهها اهمیت دارد.
دستور شانزدهم: docker push
در معرفی دستورات داکر، دستور docker push برای ارسال image به registry استفاده میشود. وقتی image پروژه را build و tag کردید، باید آن را به Docker Hub، GitLab Registry، GitHub Container Registry یا registry خصوصی خودتان ارسال کنید. مثلاً docker push registry.example.com/my-app:1.0 image را روی registry آپلود میکند. این کار باعث میشود سرورهای دیگر یا pipelineهای CI/CD بتوانند همان image را دریافت و اجرا کنند. در معرفی دستورات داکر، docker push برای تیمهایی که استقرار استاندارد و قابل تکرار میخواهند، یک دستور ضروری است.
دستور هفدهم: docker network
برای ورود به دستورات پیشرفته داکر، باید با docker network آشنا شد. این دستور برای مدیریت شبکههای داکر استفاده میشود. کانتینرها معمولاً باید با هم ارتباط داشته باشند؛ مثلاً اپلیکیشن باید به دیتابیس وصل شود. با docker network ls میتوانید شبکهها را ببینید، با docker network create my-network شبکه جدید بسازید و با گزینههای مختلف کانتینرها را به شبکه متصل کنید. استفاده درست از network باعث میشود سرویسها ایزولهتر و قابل مدیریتتر باشند. در معرفی دستورات داکر، این دستور برای پروژههای چندکانتینری بسیار مهم است.
دستور هجدهم: docker volume
یکی دیگر از دستورات پیشرفته داکر، دستور docker volume است. کانتینرها معمولاً موقتی هستند و اگر حذف شوند، داده داخل آنها هم ممکن است از بین برود. برای نگهداری دادههای پایدار مثل دیتابیس، فایلهای آپلودشده یا کشهای مهم، از volume استفاده میشود. با docker volume ls میتوانید volumeها را ببینید و با docker volume create my-data یک volume جدید بسازید. اگر دیتابیس PostgreSQL یا MySQL را داخل داکر اجرا میکنید، volume برای حفظ داده ضروری است. در معرفی دستورات داکر، docker volume یکی از مهمترین مفاهیم برای جلوگیری از از دست رفتن اطلاعات است.
دستور نوزدهم: docker inspect
در معرفی دستورات داکر، دستور docker inspect برای مشاهده جزئیات کامل یک کانتینر، image، network یا volume استفاده میشود. این دستور خروجی JSON مفصل میدهد و اطلاعاتی مثل IP داخلی، mountها، environment variables، تنظیمات شبکه، وضعیت اجرا و metadata را نمایش میدهد. اگر کانتینری به شبکه وصل نمیشود، volume درست mount نشده یا میخواهید جزئیات تنظیمات را دقیق بررسی کنید، docker inspect بسیار کاربردی است. این دستور برای کاربران حرفهای داکر اهمیت زیادی دارد، چون اطلاعاتی میدهد که در خروجی دستورات سادهتر دیده نمیشود. در معرفی دستورات داکر، این دستور ابزار بررسی عمیق است.
دستور بیستم: docker system prune
آخرین دستور در این معرفی دستورات داکر، دستور docker system prune است. این دستور برای پاکسازی منابع بیاستفاده داکر استفاده میشود؛ مثل کانتینرهای متوقفشده، networkهای استفادهنشده، cacheهای build و در صورت انتخاب، imageهای اضافی. وقتی زیاد با داکر کار میکنید، فضای دیسک بهمرور پر میشود و این دستور میتواند محیط را تمیز کند. البته باید با دقت استفاده شود، چون ممکن است چیزهایی را حذف کند که بعداً نیاز دارید. دستور docker system prune -a پاکسازی گستردهتری انجام میدهد. در معرفی دستورات داکر، این دستور برای نگهداری سالم محیط توسعه و سرور بسیار مفید است.
معرفی دستورات داکر برای استفاده حرفهایتر
در این مقاله با هدف معرفی دستورات داکر، 20 دستور کاربردی را بررسی کردیم؛ از دستورات پایه مثل docker version، docker pull، docker run و docker ps گرفته تا دستورهای مدیریتی مثل docker logs، docker exec، docker build، docker push و دستورهای پیشرفتهتر مثل docker network، docker volume و docker inspect. اگر تازه وارد داکر شدهاید، بهتر است ابتدا دستورات پایه را خوب تمرین کنید و سپس سراغ شبکه، volume، registry و پاکسازی سیستم بروید. داکر زمانی واقعاً قدرتمند میشود که فقط نصبش نکرده باشید، بلکه بتوانید کانتینرها، imageها، شبکهها و دادهها را با اطمینان مدیریت کنید. بنابراین، معرفی دستورات داکر فقط یک فهرست آموزشی نیست؛ یک مسیر عملی برای حرفهایتر کار کردن با کانتینرهاست.