# Docker

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

Source: https://joinnasnet.com/fa/guides/nasnet-panel/install/docker/
Last updated: 2026-10-16

---

## مرور کلی

با Docker، نس‌نت پنل روی یک کامپیوتر یا سرور در شبکهٔ شما اجرا می‌شود، نه روی روتر. این روش زمانی به کار می‌آید که روتر شما نمی‌تواند کانتینر اجرا کند، یا یک دستگاه همیشه‌روشن دارید. ایمیج پنل `ghcr.io/nasnet-community/nasnet-panel` است و روی `amd64`، `arm64` و `arm/v7` اجرا می‌شود.

## قبل از شروع

- Docker روی لینوکس، یا [Docker Desktop](https://www.docker.com/products/docker-desktop/) روی ویندوز و macOS نصب و روشن است. روی لینوکس می‌توانید آن را با `curl -fsSL https://get.docker.com | sudo sh` نصب کنید.
- کامپیوتر تا زمانی که از پنل استفاده می‌کنید روشن می‌ماند و به روترها دسترسی دارد.
- روترها RouterOS نسخهٔ ۷ دارند و سرویس `api` آن‌ها روی پورت `8728` روشن است.

## گام‌ها

1. در ترمینال (روی ویندوز، PowerShell) پنل را اجرا کنید:

   ```bash
   docker run -d --name nasnet -p 8080:80 --restart unless-stopped ghcr.io/nasnet-community/nasnet-panel:latest
   ```

2. آدرس `http://localhost:8080` را باز کنید، یا از دستگاه دیگر `http://<computer-ip>:8080` را.
3. [روتر خود را اضافه کنید](/fa/guides/nasnet-panel/add-router/).

روی ویندوز ممکن است Windows Firewall بپرسد که آیا Docker اجازهٔ دریافت اتصال دارد. اگر می‌خواهید از دستگاه‌های دیگر به پنل وصل شوید، برای شبکه‌های private اجازه دهید.

### HTTPS

پنل داخل کانتینر روی پورت `443` هم با یک گواهی خودامضا کار می‌کند. برای استفاده از آن، `-p 8443:443` را به دستور اضافه کنید و `https://localhost:8443` را باز کنید. مرورگر یک هشدار امنیتی نمایش می‌دهد که برای گواهی خودامضا طبیعی است.

### شبکهٔ host

اگر می‌خواهید کانتینر مستقیم روی شبکهٔ کامپیوتر باشد (بیشتر روی لینوکس کاربرد دارد)، پورت‌ها را با `PORT` و `HTTPS_PORT` تغییر دهید تا پورت‌های `80` و `443` را اشغال نکند:

```bash
docker run -d --name nasnet --network=host -e PORT=8080 -e HTTPS_PORT=8443 \
  --restart unless-stopped ghcr.io/nasnet-community/nasnet-panel:latest
```

بررسی سلامت داخلی ایمیج همیشه پورت `80` را بررسی می‌کند. بنابراین با مقدار دیگری برای `PORT`، Docker کانتینر را `unhealthy` نشان می‌دهد، اما پنل کار می‌کند.

### Docker Compose

همین سرویس در یک فایل `compose.yaml`:

```yaml
services:
  nasnet:
    image: ghcr.io/nasnet-community/nasnet-panel:latest
    container_name: nasnet
    ports:
      - "8080:80"
    restart: unless-stopped
```

آن را با `docker compose up -d` اجرا کنید.

### به‌روزرسانی و حذف

برای به‌روزرسانی، ایمیج جدید را دریافت کنید، کانتینر را پاک کنید و همان دستور `docker run` را دوباره اجرا کنید:

```bash
docker pull ghcr.io/nasnet-community/nasnet-panel:latest
docker rm -f nasnet
```

برای حذف پنل فقط دستور `docker rm -f nasnet` را اجرا کنید.

## مرجع

| متغیر | کاربرد | پیش‌فرض در ایمیج |
| ----- | ------ | ---------------- |
| `PORT` | پورت HTTP پنل داخل کانتینر | `80` |
| `HTTPS_PORT` | پورت HTTPS پنل داخل کانتینر | `443` |

برای ثابت نگه داشتن نسخه، به‌جای `latest` از تگ یک نسخه بدون `v` استفاده کنید، مانند `ghcr.io/nasnet-community/nasnet-panel:0.1.0`.

## رفع مشکلات

**پیام `port is already allocated`.** برنامهٔ دیگری از پورت `8080` استفاده می‌کند. پورت دیگری انتخاب کنید، برای مثال `-p 8090:80`، و `http://localhost:8090` را باز کنید.

**پنل باز می‌شود اما به روتر وصل نمی‌شود.** بررسی کنید که خود کامپیوتر به روتر دسترسی داشته باشد، برای مثال با `ping 192.168.88.1`، و سرویس `api` روتر روی `8728` روشن باشد. یک VPN روی کامپیوتر ممکن است ترافیک را به مسیر دیگری بفرستد.

**پیام `Cannot connect to the Docker daemon`.** Docker روشن نیست. Docker Desktop را باز کنید، یا روی لینوکس دستور `sudo systemctl start docker` را اجرا کنید.

## مرتبط

- [نصب](/fa/guides/nasnet-panel/install/)
- [افزودن روتر](/fa/guides/nasnet-panel/add-router/)
- [به‌روزرسانی‌ها](/fa/guides/nasnet-panel/updates/)
