Docker¶
Engine vs Desktop¶
| Package | Source | Notes |
|---|---|---|
docker |
pacman | Docker engine (daemon + CLI) |
docker-compose |
pacman | Modern docker compose plugin, not the deprecated standalone binary |
docker-desktop |
AUR only | Currently flagged out-of-date upstream |
Docker Desktop is a GUI wrapper around a VM/engine, built for platforms without a native Linux daemon (Windows, macOS). On Linux it's redundant: the engine runs natively, so Docker Desktop just adds overhead on top of it. It's also AUR-only here and currently stale, which makes it a worse choice than the official packages.
Recommendation: use docker + docker-compose from pacman (already in
packages.yaml). Skip docker-desktop. Add docker-buildx from pacman if
multi-platform/BuildKit builds are needed.
Install by OS¶
CachyOS¶
sudo pacman -S docker docker-compose docker-buildx
sudo systemctl enable --now docker
sudo usermod -aG docker "$USER" # log out/in for group change to apply
Ubuntu¶
Engine only — Desktop is optional and not part of this project's packages.yaml for Ubuntu.
# https://docs.docker.com/engine/install/ubuntu/
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker "$USER" # log out/in for group change to apply
Docs: Install Docker Engine on Ubuntu
macOS¶
Desktop is the supported path here — there is no native Linux-style daemon on macOS, so Docker Desktop bundles the Linux VM Docker actually runs in.
Docs: Install Docker Desktop on Mac
Windows¶
Desktop is the supported path here too, backed by WSL2.
Requires WSL2 enabled first.
Docs: Install Docker Desktop on Windows
Post-install (Linux)¶
By default, Docker requires sudo. To run it as your user:
sudo groupadd docker # usually already exists
sudo usermod -aG docker "$USER"
newgrp docker # applies to the current terminal only
Log out and back in for the group change to apply system-wide.
On Arch/CachyOS the docker service is not enabled automatically: