راهنمای کامل دستورات داکر (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
برای میزبانی اپلیکیشنهای کانتینری، هاست داکر یا همان سرور مجازی، یک بستر مناسب و قابل کنترل فراهم میکند.
فهرست تیترها