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 داکر.

اصطلاحات مرتبط: داکر کامپوز، داکر سوارم، داکر انجین، داکر هاب، داکرفایل، ایمیج داکر، والیوم داکر، کانتینر، کوبرنتیز.