Docker
- Source: https://github.com/moby/moby
- License: Apache 2.0
- Alternatives: Podman, Kubernetes, k3s
Install using the official Docker guide (NOT via Snap).
Features
- Container Runtime: Package apps with all their dependencies into portable, reproducible images
- Docker Compose: Define and run multi-container stacks with a single YAML file
- Image Layering: Shared layers between images reduce disk usage and speed up pulls
- Networking: Bridge, overlay, and host networks for flexible container communication
- Volume Mounts: Persist data outside containers and share it between services
- Resource Limits: Cap CPU, memory, and I/O per container
Network
The exist network is automatically created when running docker compose up. To create it manually:
docker network create \
--driver overlay \
--attachable \
--opt encrypted \
exist
Privileged Port Error
To allow binding to ports like 80 without root, add to /etc/sysctl.conf:
net.ipv4.ip_unprivileged_port_start=80
Apply immediately:
sudo sysctl -w net.ipv4.ip_unprivileged_port_start=80