Containers
Monitor and manage Docker containers and images from TotalApp.
Overview
The Containers screen connects to the Docker daemon on the host machine and gives you a browser-based dashboard for monitoring and managing containers and images. View real-time CPU and memory usage, start and stop containers, stream logs, and browse a Dockerfile template library — all without leaving TotalApp.
Requires Docker Daemon
The Containers screen requires Docker to be installed and running on the same machine as the TotalApp server process. The server communicates with the Docker daemon via the Docker socket (/var/run/docker.sock on Linux/macOS, named pipe on Windows).
Container Dashboard
The dashboard shows all containers returned by docker ps -a — both running and stopped. Each row in the container table displays:
| Column | Description |
|---|---|
| Name | Container name (set by Docker or --name flag) |
| Image | Image name and tag (e.g. nginx:latest) |
| Status | Running, Exited, Paused, Restarting — colour-coded badge |
| CPU % | Current CPU usage as a percentage of allocated cores (running containers only) |
| Memory | Current RSS memory usage and limit (e.g. 128 MB / 512 MB) |
| Ports | Published port mappings (e.g. 0.0.0.0:8080→80/tcp) |
| Created | Time since container was created |
The dashboard auto-refreshes every 5 seconds. Disable auto-refresh with the toggle in the toolbar if you need a static snapshot.
Managing Containers
Click a container row to expand its detail panel. The following actions are available from the action buttons in the detail panel or the row context menu:
Start
Starts a stopped container. Equivalent to docker start <name>. Available only for exited containers.
Stop
Sends SIGTERM then SIGKILL after a 10-second grace period. Equivalent to docker stop <name>.
Restart
Stops then starts the container. Useful for applying configuration changes without removing and recreating the container.
Remove
Removes the container (docker rm). Only available for stopped containers. Requires confirmation to prevent accidental deletion.
Force Remove Running Containers
To remove a running container, stop it first. The UI does not expose docker rm -f to prevent accidental destruction of running services.
Image Management
Switch to the Images tab to see all locally available Docker images. Each image row shows the repository, tag, image ID, size, and creation date.
Image Actions
- Pull — Pull a new image by entering a full image reference (e.g.
postgres:16). Progress is streamed in real time. - Inspect — View the full image manifest JSON including layers, environment variables, and exposed ports.
- Remove — Delete the image (
docker rmi). Blocked if any container (running or stopped) uses the image.
Dangling Images
Images with <none> repository and tag are dangling images — build artifacts no longer referenced by any tag. Use the Prune Dangling button to remove them all at once and free disk space.
Log Streaming
Click Logs in the container detail panel to open a real-time log stream for that container. The log viewer:
- Tails the last 200 lines on open, then streams new output in real time.
- Supports search with regex — matching lines are highlighted in yellow.
- Colour-codes lines containing
ERROR(red),WARN(yellow),INFO(blue). - Auto-scrolls to the bottom as new lines arrive. Click Pause to freeze the view.
- Includes both stdout and stderr streams merged into one view.
Dockerfile Templates
The Templates tab provides a library of ready-to-use Dockerfiles for common stacks. Click a template to view it, then copy it to your clipboard or download it as a Dockerfile.
| Template | Base Image | Description |
|---|---|---|
| Node.js (production) | node:20-alpine | Multi-stage build — deps in builder, runtime in slim Alpine image |
| Python / FastAPI | python:3.12-slim | pip install from requirements.txt, uvicorn entrypoint |
| PostgreSQL with init script | postgres:16 | Copies init.sql into the init scripts directory |
| Nginx static site | nginx:alpine | Copies build output into /usr/share/nginx/html |
| Go (multi-stage) | golang:1.22-alpine → scratch | Builds a statically-linked binary, runs in a minimal scratch image |
FAQ
docker group: sudo usermod -aG docker $USER. On macOS with Docker Desktop, ensure Docker Desktop is running before starting TotalApp.DOCKER_HOST environment variable before starting TotalApp to point to a remote Docker daemon (e.g. DOCKER_HOST=tcp://192.168.1.100:2376). TotalApp inherits this variable and all container operations go to the remote host. Use TLS certificates for secure remote Docker connections.com.docker.compose.project label if present). Direct docker compose up/down operations from the UI are not yet supported — use the CI/CD Pipeline screen to run Compose commands as pipeline steps.