Alpine Linux Docker host gotchas

Alpine is an excellent lightweight Docker host but has a few differences from Debian-based systems worth knowing upfront.

Package name: the Docker service package is docker-openrc, not docker.io or docker-ce.

apk add docker-openrc
rc-update add docker default
service docker start

Shell: Alpine uses ash, not bash. Scripts that rely on bash-specific syntax ([[, arrays, $RANDOM, etc.) will fail silently or with confusing errors.

Group changes: Alpine has no newgrp by default. After adding a user to the docker group you must fully log out and back in — there is no shortcut.

Resource profile: Alpine idles at ~30MB RAM vs ~150MB for Debian. For a host running many containers, this is meaningful overhead savings.

Service persistence on diskless Alpine

If using Alpine in diskless mode (common for Proxmox VMs booting from a small flash), changes to /etc don’t persist across reboots. Commit changes with:

lbu commit -d

This syncs /etc to the boot media. Forgetting this after adding packages or editing configs leads to confusing “it worked yesterday” situations.