Skip to content

Docker Services

This section covers Docker setup and containerized services for the MS-S1 MAX.

Overview

Docker runs services with data stored on ZFS datasets.

Golden Rule

Containers are disposable. Data is not.

All persistent data lives on ZFS via bind mounts.

Bind Mounts vs Docker Volumes

Approach Use Case
Bind mounts All persistent data (default)
Docker volumes Small, disposable state only

Why Bind Mounts?

  • Transparent paths
  • Backed by ZFS datasets
  • Easy snapshots and backups
  • Human-inspectable

Sections

  • Docker Setup — Install Docker on Ubuntu 26.04 (with resolute -> noble fallback) and configure the daemon
  • Docker vs LXC — When to pick which on this build
  • Docker Compose — Compose Spec, project structure, common patterns
  • Resource Limits — Container memory, CPU, GPU, and device constraints
  • Development Stacks — Postgres, Redis, Elasticsearch, etc. for dev
  • Ollama Stack — ROCm-backed Ollama + Open WebUI compose
  • Monitoring — Prometheus + Grafana + Loki + cAdvisor
  • Nextcloud — Self-hosted cloud storage
  • Plex — Media server (with iGPU transcoding caveat — see notes inside)