What Glances Does That Task Manager Cannot
Most built-in system monitors show you a snapshot. Glances shows you a story. The open-source tool, written in Python, pulls CPU load, memory usage, disk I/O, network throughput, running processes, and container stats into a single terminal view – or a browser-based dashboard you can reach from any device on your network. For anyone running a home lab, a personal server, or a self-hosted stack, that kind of consolidated visibility is worth the twenty minutes it takes to set up.
What makes Glances different from something like Dashdot is its flexibility in how it runs. You can launch it as a standalone terminal app, expose it as a web server, or run it in server mode so a remote Glances client can connect to it directly. That three-mode design means it fits into almost any workflow without forcing you to change how you work.
Docker makes the whole process cleaner.

Installing Glances with Docker Compose
Before writing any configuration, make sure Docker and Docker Compose are already installed on your machine. Glances has an official image maintained by the project, so there is no need to build anything from scratch. Create a working directory for the project – something like /opt/glances or ~/glances works fine – then create a docker-compose.yml file inside it.
Paste the following into that file:
- image: nicolargo/glances:latest
- container_name: glances
- pid: host
- network_mode: host
- restart: unless-stopped
- environment: GLANCES_OPT=-w (this flag starts Glances in web server mode)
- volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /etc/os-release:/etc/os-release:ro
The pid: host setting is required. Without it, Glances cannot read the process list of the host system – it would only see what is happening inside the container itself, which is not useful. The network_mode: host setting bypasses Docker’s internal networking so Glances can monitor actual host network interfaces. Once the file is saved, run docker compose up -d from that directory. The container will pull the image and start within seconds.

Accessing the Web Interface and Configuring the Dashboard
With the container running, open a browser and navigate to http://your-server-ip:61208. The Glances web UI loads automatically – no login screen by default, no additional setup required. The dashboard displays CPU usage per core, memory and swap, disk read/write speeds, active network interfaces, and a live process table sorted by resource consumption. It refreshes every few seconds on its own.
If you want to restrict access – which you should if this server is reachable outside your local network – Glances supports a basic authentication layer through its configuration file. Create a file at /etc/glances/glances.conf on the host (then mount it into the container as a volume), and add a [passwords] section with a hashed password entry. The project documentation covers the exact hashing format, but the short version is that it uses SHA-256. For most home lab setups sitting behind a local firewall, skipping the password is reasonable. For anything internet-facing, do not skip it.
Glances also supports plugins and exporters. If you are running a metrics stack with InfluxDB and Grafana, Glances can push data directly to InfluxDB using the –export influxdb flag added to the GLANCES_OPT environment variable. This turns Glances into a lightweight metrics collector that feeds a longer-term storage backend – useful if you want historical graphs instead of just a live view. The same export mechanism works with Prometheus, Cassandra, and several other targets.
Running Glances in Client-Server Mode
Web mode works well for a single machine, but Glances also runs in a dedicated server mode (-s flag) that lets a separate Glances instance connect to it as a client (-c your-server-ip). This approach is worth knowing about if you manage multiple hosts, because you can monitor a remote machine from your local terminal without opening a browser at all. The client renders the same full-terminal interface it would show for a local machine, just pulling live data over the network instead.
To enable server mode in Docker, change the GLANCES_OPT environment variable from -w to -s. The default port for server mode is 61209. If you want both the web interface and the server mode running at the same time, Glances does not support that in a single process – you would need two containers or two separate instances. Most people choose one or the other based on whether they prefer a browser or a terminal.
One practical note: if your server is running multiple monitored services and you also use something like a self-hosted browser start page as a hub, you can drop a direct link to the Glances web UI right there alongside your other service shortcuts. It takes less than a minute to add and saves you from remembering port numbers every time you want a quick health check.

The Part Most Guides Skip
Glances logs warnings to stdout by default, and if you are running it inside Docker, those logs are accessible via docker logs glances. If the container starts but the web interface is blank or unresponsive, the logs almost always show the reason immediately – usually a missing dependency in the Python environment or a volume mount path that does not exist on the host. The nicolargo/glances:latest-full image variant includes all optional dependencies pre-installed, including those needed for Docker container monitoring and GPU stats, and switching to that tag resolves the majority of blank-dashboard issues without any further configuration.





