Docker installation
Install Docker Engine on Arch, configure user access, verify, uninstall.
Install
Engine (brings in containerd + runc):
sudo pacman -S dockerBuildx + Compose plugins (optional):
sudo pacman -S docker-buildx docker-compose
Daemon
The docker.service is not started by default on Arch.
Enable + start now:
sudo systemctl enable --now docker.serviceStatus:
sudo systemctl status docker.service
User access
You can keep using sudo docker ... or add your user to the docker group (root-equivalent — see security-rootless):
Add to group:
sudo usermod -aG docker $USERRefresh current shell (or log out + back in):
newgrp docker
Verify
Versions:
docker versionDaemon info (storage/cgroup driver, kernel):
docker infoEnd-to-end test:
docker run --rm hello-world
Daemon config
/etc/docker/daemon.json (create if missing):
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"data-root": "/var/lib/docker"
}
log-optscaps per-container log file size.data-rootmoves Docker’s storage to another disk.
Apply with sudo systemctl restart docker.
Uninstall
Stop daemon:
sudo systemctl disable --now docker.serviceRemove package(s):
sudo pacman -Rns docker docker-buildx docker-compose(Optional) wipe data — destroys all images, containers, volumes:
sudo rm -rf /var/lib/docker /var/lib/containerd
Troubleshooting
| Symptom | Cause / fix |
|---|---|
Cannot connect to the Docker daemon at unix:///var/run/docker.sock | Daemon not running (systemctl start docker) or user not in docker group / didn’t refresh shell. |
permission denied while trying to connect to the Docker daemon socket | Group membership not active. newgrp docker or new terminal. |
Error response from daemon: pull access denied | Wrong name/tag, or private image — see registries. |
| Daemon won’t start, cgroup errors in journal | Old kernel / conflicting cgroup driver in daemon.json. Compare `docker info |