# Container list

Source: https://laraport.app/docs/container-list/

> Every Docker container of a server, grouped by Compose project or Swarm stack, with status, health and ports, and a panel for the server itself.

Opening a server shows all its containers, running and stopped.

*Screen: The container list of a server, with the server panel on top*

## The server panel

Above the list, a panel shows the state of the server itself:

```
╭──────────────────────────────────────────────────────────────────────────────────╮
│ ● Production    Ubuntu 24.04.1 LTS · 6.8.0-45-generic · x86_64    up 5w · prod-1 │
│ Load     ━───────── 0.42 0.51 0.48  ·  8 cores                                   │
│ Memory   ━━━━━━──── 10G / 16G  ·  no swap                                        │
│ Disk     / ━━━━━━━━━━ 76G / 80G, 4.0G free · docker                              │
│ Docker   27.3.1  ·  overlay2  ·  Swarm manager, 1 node  ·  Dokploy               │
│ ⚠ disk / is 95% full, 4.0G free  ·  ⚠ reboot required                            │
╰──────────────────────────────────────────────────────────────────────────────────╯
```

- **Load** is shown against the number of cores: a load of 8 on 8 cores is a full machine.
- **Memory** counts what is really available to programs (`MemAvailable`), not just free memory.
- **Disk** shows the root filesystem and, when it lives elsewhere, Docker's data directory. It turns yellow from 85% and red from 95%. To free space, press `i` (images, volumes and networks) or `g` (cleanup).
- **Warnings** appear for a nearly full disk, low memory, a load above the number of cores, a pending reboot (`/var/run/reboot-required`) and a Swarm in trouble.

The panel is read with one command that changes nothing on the server: `/etc/os-release`, `/proc`, `df` and `docker info`. It is read again with `r`.

`p` switches between the full panel and a single line, and remembers the choice. On a short or narrow window the panel shrinks to one line by itself, so the list keeps room. Settings (`s` on the server list) can also switch it off: then the server is not queried at all.

When Docker runs in a virtual machine (Docker Desktop or OrbStack on a Mac) or on another machine (`docker -H`, a Docker context), the panel shows what Docker reports, cores and memory, but not load and disks: the numbers of the machine laraport is connected to would describe a different system.

## What each row shows

- The name, or the display name you gave it.
- A compact status: `3mo ✓` for a container up three months and healthy, `exit 137 · 8h` for one that was killed 8 hours ago. Health is shown by colour.
- Published ports.
- Live CPU and memory, when the window is wide enough (see `usage_columns` in [Configuration](https://laraport.app/docs/configuration/#settings)).

## Groups

Containers are grouped by project:

- a **Swarm stack**;
- a **Coolify project**, from the labels Coolify puts on its containers, with the environment when it is not production (`shop/staging`), and Coolify's own containers in a `coolify` group;
- a **Dokploy project**, from Dokploy's `<project>-<app>-<random>` service names, with Dokploy's own services in a `dokploy` group;
- a **Compose project**;
- or the `group` you set for a container.

Coolify containers are listed by their resource's name (`api`, `shop-db`) instead of their UUID name, with the service for a resource of several containers (`stack/worker`) and the pull request for a preview (`api (PR 7)`).

Containers in a group are indented under its header. `enter` or `space` on a header collapses the group; `v` switches grouping off. `l` on a header follows the logs of every running container of the group in one stream (see [Logs](https://laraport.app/docs/logs/#group-logs)).

## Old tasks and hidden containers

Every Swarm or Dokploy redeploy leaves stopped tasks behind. When a newer task of the same service exists, the old ones collapse into one line (`· 4 old tasks`). `.` shows them, and the containers you hid.

## Keys

| Key | Action |
|---|---|
| `enter` | Open the container |
| `/` | Filter |
| `l` | Logs; on a group header, the logs of the group |
| `t` | Shell in the container |
| `f` | File browser |
| `s` / `x` | Start / stop |
| `R` | Restart |
| `D` | Remove |
| `e` | Container settings: display name, favourite, hidden, root |
| `.` | Show hidden containers and old tasks |
| `v` | Grouping on or off |
| `i` | Images, volumes and networks of the server |
| `E` | [Events](https://laraport.app/docs/events/) of the server's containers in the last 24 hours |
| `g` | Server-wide cleanup commands |
| `p` | Server panel: full or one line |
| `r` | Read the list again |

Stop, restart and remove ask first, with **Cancel** focused. The list reloads afterwards and shows the result.

For a Swarm task, the confirmation explains that Swarm starts a replacement. To restart the whole service, open the container and use **Redeploy service** on its Docker tab, see [Swarm and Compose](https://laraport.app/docs/swarm-compose/).

The command palette (`ctrl+k`) of the list also has the server's [journal](https://laraport.app/docs/journal/) and **Clean up container settings**.
