# Docker

> Run the panel as a container on a Windows, Linux or Mac computer instead of on the router.

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

---

## Overview

With Docker, Nasnet Panel runs as a container on a computer or server on your
network instead of on the router. Use it when you already run containers on a
machine that stays on, or when your router can't run containers. The image is
`ghcr.io/nasnet-community/nasnet-panel` and runs on `amd64`, `arm64` and
`arm/v7`.

## Before you start

- The machine stays on while you use the panel, and can reach your routers over
  the network.
- The routers run RouterOS v7.

## Steps

### Linux

1. Install Docker Engine. On most distributions:

   ```bash
   curl -fsSL https://get.docker.com | sudo sh
   ```

2. Start the panel:

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

3. Open `http://localhost:8080`, or `http://<machine-ip>:8080` from another
   device.

To put the panel straight on the host's network, use host networking instead.
Set `PORT` so it doesn't take port 80:

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

### macOS

1. Install [Docker Desktop](https://www.docker.com/products/docker-desktop/)
   and start it. It works on Apple silicon and Intel Macs.
2. In **Terminal**, start the panel:

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

3. Open `http://localhost:8080`.

### Windows

1. Install [Docker Desktop](https://www.docker.com/products/docker-desktop/)
   with the WSL 2 backend (the default), and start it.
2. In PowerShell, start the panel:

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

3. Open `http://localhost:8080`.

The first time, Windows Firewall may ask whether Docker can accept connections.
Allow it on private networks if you want to open the panel from other devices.

### Docker Compose

The same service as a `compose.yaml`, on any system:

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

Start it with `docker compose up -d`.

### Update or remove

To update, pull the new image and recreate the container:

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

Then run the same `docker run` command again. To remove the panel, run only
`docker rm -f nasnet`.

## Reference

| Variable | What it does | Default |
| -------- | ------------ | ------- |
| `PORT` | Port the panel listens on inside the container. | `80` |
| `HOST` | Address it binds to. | `0.0.0.0` |

Pin a version by replacing `latest` with a release tag, for example
`ghcr.io/nasnet-community/nasnet-panel:0.1.6`.

## Troubleshooting

**`port is already allocated`.** Something else uses port 8080. Pick another
host port, for example `-p 8090:80`, and open `http://localhost:8090`.

**The panel opens but can't reach the router.** Check that the machine itself
can reach the router, for example with `ping 192.168.88.1`. A VPN on the host
can route the traffic elsewhere.

**`Cannot connect to the Docker daemon`.** Docker isn't running. Start Docker
Desktop, or run `sudo systemctl start docker` on Linux.

## Related

- [Installation](/en/guides/nasnet-panel/install/)
- [Adding a router](/en/guides/nasnet-panel/add-router/)
- [Updates](/en/guides/nasnet-panel/updates/)
