121 lines
3.1 KiB
Markdown
121 lines
3.1 KiB
Markdown
# راهنمای استفاده از 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 montazeran .
|
||
|
|
|
||
|
|
# اجرای کانتینر
|
||
|
|
docker run -p 3000:3000 montazeran
|
||
|
|
|
||
|
|
# اجرا در حالت detached
|
||
|
|
docker run -d -p 3000:3000 --name montazeran-app montazeran
|
||
|
|
```
|
||
|
|
|
||
|
|
## دسترسی به اپلیکیشن
|
||
|
|
|
||
|
|
پس از اجرای کانتینر، اپلیکیشن در آدرس زیر در دسترس است:
|
||
|
|
- 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
|
||
|
|
```
|
||
|
|
|