راهنمای کامل دستورات داکر (Docker)



داکر (Docker) یک پلتفرم نرم‌افزاری است که به شما امکان می‌دهد اپلیکیشن‌ها را به عنوان “کانتینر”های قابل حمل، توسعه داده، تست و اجرا کنید. این کانتینرها تقریبا در هر محیطی به صورت یکسان اجرا می‌شوند و فرآیند توسعه را بسیار ساده‌تر می‌کنند. برای کار با داکر، شما از دستورات خط فرمان (CLI) استفاده می‌کنید. این مقاله به عنوان یک جزوه داکر و راهنمای مرجع، پرکاربردترین دستورات را به صورت دسته‌بندی شده به شما آموزش می‌دهد.

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

 

مفاهیم پایه: ایمیج (Image) و کانتینر (Container)

 

  • ایمیج (Image): یک قالب فقط-خواندنی است که شامل تمام دستورالعمل‌ها، کتابخانه‌ها و کدهای لازم برای اجرای یک اپلیکیشن است. ایمیج‌ها از داکر هاب (Docker Hub) که یک ریپازیتوری داکر بزرگ است، دانلود می‌شوند.
  • کانتینر (Container): یک نمونه در حال اجرا (Running Instance) از یک ایمیج است. شما می‌توانید از یک ایمیج، چندین کانتینر مستقل ایجاد کنید.

 

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

این‌ها پرکاربردترین دستورات برای کار با کانتینرها هستند.

 

۱. اجرا و ساخت کانتینر: `docker run`

این اصلی‌ترین دستور برای ساخت و اجرای یک کانتینر از روی یک ایمیج است. اگر ایمیج به صورت محلی موجود نباشد، داکر آن را به صورت خودکار از داکر هاب دانلود می‌کند.

# اجرای یک کانتینر ساده Nginx در پیش‌زمینه (Foreground)
docker run nginx

(با فشردن CTRL+C، کانتینر متوقف می‌شود)

 

۲. اجرای کانتینر در پس‌زمینه (Detached Mode)

برای اینکه کانتینر شما حتی پس از بستن ترمینال به کار خود ادامه دهد، از فلگ -d استفاده کنید.

docker run -d nginx

 

۳. انتشار پورت‌ها (Port Publishing)

برای دسترسی به سرویس داخل کانتینر (مانند یک وب‌سایت) از خارج، باید پورت کانتینر را به یک پورت روی سرور میزبان متصل (map) کنید.

# اتصال پورت 80 کانتینر به پورت 8080 سرور
docker run -d -p 8080:80 nginx

حالا با مراجعه به آدرس http://your-server-ip:8080 در مرورگر، باید صفحه پیش‌فرض Nginx را ببینید.

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

 

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

docker ps

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

۵. توقف و راه‌اندازی مجدد کانتینرها

    • `docker stop`: یک کانتینر در حال اجرا را به آرامی متوقف می‌کند.
docker stop [CONTAINER_ID_OR_NAME]
    • `docker start`: یک کانتینر متوقف شده را دوباره راه‌اندازی می‌کند.
docker start [CONTAINER_ID_OR_NAME]

 

۶. حذف کانتینرها: `docker rm`

برای حذف یک کانتینر متوقف شده استفاده می‌شود.

docker rm [CONTAINER_ID_OR_NAME]

نکته: برای حذف یک کانتینر در حال اجرا، باید از فلگ -f (force) استفاده کنید: docker rm -f [ID]. برای حذف خودکار کانتینر پس از توقف، می‌توانید هنگام اجرا از فلگ --rm استفاده کنید: docker run --rm nginx.

۷. مشاهده لاگ‌های یک کانتینر: `docker logs`

این دستور برای عیب‌یابی و مشاهده خروجی‌های یک کانتینر بسیار مفید است.

# مشاهده کامل لاگ‌ها
docker logs [CONTAINER_ID_OR_NAME]

# مشاهده زنده لاگ‌ها
docker logs -f [CONTAINER_ID_OR_NAME]

 

بخش دوم: دستورات مدیریت ایمیج‌ها

۱. جستجو و دانلود ایمیج‌ها

 

    • `docker search`: برای جستجوی یک ایمیج در داکر هاب.
docker search redis
    • `docker pull`: برای دانلود یک ایمیج از داکر هاب.
docker pull ubuntu:22.04

 

۲. مشاهده و حذف ایمیج‌ها

    • `docker images`: نمایش لیست تمام ایمیج‌های موجود روی سیستم شما.
docker images
    • `docker rmi`: برای حذف یک یا چند ایمیج.
docker rmi [IMAGE_ID_OR_NAME]

 

بخش سوم: دستورات پیشرفته و مدیریت داده

 

۱. اجرای دستور داخل یک کانتینر فعال: `docker exec`

 

این دستور به شما اجازه می‌دهد یک ترمینال تعاملی (interactive shell) در داخل یک کانتینر در حال اجرا باز کنید.

# باز کردن یک شل bash در داخل کانتینر
docker exec -it [CONTAINER_ID_OR_NAME] /bin/bash

 

۲. مدیریت داده‌ها با Volumeها

 

برای ذخیره دائمی داده‌های یک کانتینر (مانند دیتابیس)، باید از Volumeها استفاده کنید. این کار داده‌ها را از چرخه عمر کانتینر جدا می‌کند.

# ایجاد یک Volume جدید
docker volume create my-data-volume

# اجرای یک کانتینر و اتصال Volume به آن
docker run -d --name my-db -v my-data-volume:/var/lib/mysql mysql

 

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