# راهنمای استفاده از Docker ## نصب Docker اگر Docker روی سیستم شما نصب نیست، می‌توانید از یکی از روش‌های زیر استفاده کنید: ### Windows 1. **Docker Desktop برای Windows** را دانلود و نصب کنید: - دانلود از: https://www.docker.com/products/docker-desktop/ - پس از نصب، Docker Desktop را اجرا کنید - منتظر بمانید تا Docker شروع به کار کند 2. **بررسی نصب:** ```powershell docker --version docker compose version ``` ### Linux ```bash # Ubuntu/Debian curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh # اضافه کردن کاربر به گروه docker sudo usermod -aG docker $USER ``` ### macOS 1. **Docker Desktop برای Mac** را دانلود و نصب کنید: - دانلود از: https://www.docker.com/products/docker-desktop/ ## ساخت و اجرای کانتینر ### استفاده از Docker Compose (پیشنهادی) **نکته:** در نسخه‌های جدید Docker، از `docker compose` (با فاصله) استفاده می‌شود به جای `docker-compose` (با خط تیره). ```bash # ساخت و اجرای کانتینر docker compose up -d # مشاهده لاگ‌ها docker compose logs -f # توقف کانتینر docker compose down # ساخت مجدد و اجرا docker compose up -d --build ``` **اگر دستور بالا کار نکرد، از نسخه قدیمی استفاده کنید:** ```bash docker-compose up -d ``` ### استفاده مستقیم از Docker ```bash # ساخت image docker build -t next-ctrlp . # اجرای کانتینر docker run -p 3000:3000 next-ctrlp # اجرا در حالت detached docker run -d -p 3000:3000 --name next-ctrlp-app next-ctrlp ``` ## دسترسی به اپلیکیشن پس از اجرای کانتینر، اپلیکیشن در آدرس زیر در دسترس است: - http://localhost:3000 ## عیب‌یابی ### مشکل: دستور docker شناسایی نمی‌شود **راه حل:** 1. مطمئن شوید Docker Desktop نصب و در حال اجرا است 2. PowerShell را بسته و دوباره باز کنید 3. یا از Command Prompt استفاده کنید 4. بررسی کنید که Docker در PATH سیستم قرار دارد ### مشکل: Port 3000 در حال استفاده است **راه حل:** ```bash # تغییر پورت در docker-compose.yml ports: - "3001:3000" # حالا از پورت 3001 استفاده کنید ``` یا کانتینر دیگری که از پورت 3000 استفاده می‌کند را متوقف کنید. ## متغیرهای محیطی اگر نیاز به تنظیم متغیرهای محیطی دارید، می‌توانید فایل `.env` را ایجاد کنید و در `docker-compose.yml` آن را اضافه کنید: ```yaml services: next-app: env_file: - .env ``` یا به صورت مستقیم: ```yaml services: next-app: environment: - NODE_ENV=production - NEXT_PUBLIC_API_URL=https://api.example.com ```