Docker یا داکر مجموعهای از ابزارها برای ساخت، توزیع و اجرای برنامه در محیط کانتینری است. داکر «جایگزین سیستمعامل» نیست. کانتینر معمولاً روی Kernel میزبان اجرا میشود و با Namespace و Cgroup از سایر پردازشها جدا میماند.
اجزای اکوسیستم داکر
| مفهوم | نقش |
|---|---|
| Docker Engine | موتور اجرا، API و daemon |
| Docker CLI | فرمانهای مدیریت از ترمینال |
| Docker Image | بسته نسخهدار برنامه و وابستگیها |
| Dockerfile | دستورالعمل ساخت ایمیج |
| Docker Hub | رجیستری عمومی و خصوصی ایمیج |
| Docker Compose | تعریف چند سرویس در فایل YAML |
| Docker Swarm | ارکستریشن کلاستر داکر |
| Buildx / BuildKit | ابزارهای ساخت پیشرفته و چندپلتفرمی |
| Volume | ذخیره پایدار مستقل از لایه نوشتنی کانتینر |
نصب داکر روی اوبونتو
برای نصب روی Ubuntu مخزن رسمی داکر را اضافه کنید و Docker Engine و افزونه Compose را از همان مخزن نصب کنید. فرمانهای زیر مطابق مسیر پیشنهادی مستندات رسمیاند.
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run --rm hello-world
docker compose version
در ویندوز و مک معمولاً Docker Desktop نصب میشود. در لینوکس نیز Podman گزینه دیگری برای اجرای کانتینر است. نصب و مدیریت دسترسی به Docker Socket باید با سیاست امنیتی سازمان هماهنگ باشد.
دستورات مهم داکر
| دستور | توضیح کوتاه | مثال |
|---|---|---|
docker version | نسخه کلاینت و سرور | docker version |
docker info | مشخصات موتور | docker info |
docker pull | دریافت ایمیج | docker pull nginx:alpine |
docker images | فهرست ایمیجها | docker images |
docker build | ساخت ایمیج | docker build -t shop:1.0 . |
docker run | اجرای کانتینر جدید | docker run -d -p 8080:80 nginx:alpine |
docker ps | فهرست کانتینرهای فعال | docker ps -a |
docker logs | مشاهده لاگ | docker logs -f shop-api |
docker exec | فرمان داخل کانتینر | docker exec -it shop-api sh |
docker inspect | جزئیات آبجکت | docker inspect shop-api |
docker stats | مصرف منابع | docker stats |
docker stop | توقف تمیز | docker stop shop-api |
docker start | شروع مجدد | docker start shop-api |
docker restart | راهاندازی مجدد | docker restart shop-api |
docker rm | حذف کانتینر | docker rm shop-api |
docker rmi | حذف ایمیج | docker rmi shop:1.0 |
docker network ls | نمایش شبکهها | docker network ls |
docker network create | ساخت شبکه | docker network create shop-net |
docker volume ls | نمایش والیومها | docker volume ls |
docker volume create | ساخت والیوم | docker volume create shop-data |
docker cp | کپی فایل بین میزبان و کانتینر | docker cp ./report.txt shop-api:/tmp/ |
docker tag | برچسبگذاری ایمیج | docker tag shop:1.0 user/shop:1.0 |
docker push | انتشار ایمیج | docker push user/shop:1.0 |
docker compose up | اجرای برنامه چندسرویسی | docker compose up -d |
docker compose down | حذف منابع پروژه | docker compose down |
docker system df | مصرف دیسک داکر | docker system df |
docker system prune | پاکسازی منابع بلااستفاده | docker system prune |
مثال یک پروژه PHP ساده
FROM php:8.4-cli
WORKDIR /app
COPY . .
CMD ["php", "-S", "0.0.0.0:8000", "-t", "public"]
docker build -t baversion-php-demo .
docker run --rm -p 8000:8000 baversion-php-demo
# Development example only; PHP built-in server is not for production.
هشدار
فرمانهای پاکسازی مانند prune و حذف والیوم میتوانند داده یا منابع موردنیاز پروژه را حذف کنند. قبل از اجرای آنها خروجی و محدوده اثر را بررسی کنید.
مستندات رسمی: نصب داکر روی Ubuntu و مرجع CLI داکر.
اصطلاحات مرتبط: داکر کامپوز، داکر سوارم، داکر انجین، داکر هاب، داکرفایل، ایمیج داکر، والیوم داکر، کانتینر، کوبرنتیز.