Docker on this site is the container runtime I use when the host is an ordinary Linux install and a compose file is the whole deployment. Alpine laptop Pi-hole, Jellyfin on Alpine, and SafeLine in front of self-hosted apps are the posts where Docker is the point. Several Fedora and CoreOS notes also wear this tag because the homelab conversation started with Docker even when the unit I want you to run is a Podman Quadlet. The tag page says so, instead of pretending every result is a compose tutorial.
If the host is Fedora CoreOS, switch to the Podman tag after you skim titles. Quadlets are systemd units. They come back on boot without a shell script calling podman run, and they fit an image-based host better than a Docker daemon I then have to babysit. If the host is Alpine, stay here. apk plus the community repo plus Docker Compose is the path that actually worked for Pi-hole, after the upstream installer rejected Alpine's package manager.
SafeLine is the security-shaped compose example: read the file, set a real database password, and do not bind the admin UI to the world. It is a WAF in front of apps, not a patch for the apps. Jellyfin is the media-shaped example. Neither post is a Kubernetes cluster, and neither needs one. One compose project, a volume you can find again, and a firewall, is the whole standard I am willing to recommend.
Start here
- Turning an Old Laptop into an Alpine Linux Pi-hole Server with Docker and Nightly Updates
Pi-hole in Compose on Alpine, with the community repo enabled and a nightly update habit.
- Jellyfin Server running on Alpine Linux with Docker
Jellyfin as a container on a small Alpine host. Keep the library on a disk you meant to use for media.
- How to Securely Deploy SafeLine WAF Using Docker Compose
SafeLine from the published compose file, with a generated database password and a directory that is not world-readable.
- Running Pi-hole as a Podman Quadlet on Fedora CoreOS
Tagged docker because DNS-in-a-container is the topic. On CoreOS I want the Quadlet, not a Docker daemon.