In this guide, we’ll set up Docker, Portainer, and Watchtower on Arch, Debian, and Fedora. These tools make managing containers easy and ensure your images stay updated automatically. 🚀
Install Docker, enable the service, and add your user to the Docker group:
sudo pacman -Syu --needed docker docker-compose sudo systemctl enable --now docker.service getent group docker || sudo groupadd docker sudo usermod -aG docker $USER newgrp docker docker --version docker compose version
sudo mkdir -p ~/docker/containers/watchtower sudo chown -R $(whoami):$(whoami) ~/docker/containers/watchtower sudo docker run -d --name watchtower --privileged -v /var/run/docker.sock:/var/run/docker.sock -v ~/docker/containers/watchtower:/config --restart unless-stopped containrrr/watchtower
sudo mkdir -p ~/docker/containers/portainer sudo chown -R $(whoami):$(whoami) ~/docker/containers/portainer sudo docker run -d --name portainer --privileged -p 9443:9443 -v /var/run/docker.sock:/var/run/docker.sock -v ~/docker/containers/portainer:/data --restart unless-stopped portainer/portainer-ce # Access Portainer: # https://127.1.1.1:9443 (or your-server-ip:9443)
Use apt to install Docker and Compose:
sudo apt update sudo apt -y install docker.io docker-compose-plugin sudo systemctl enable --now docker getent group docker || sudo groupadd docker sudo usermod -aG docker $USER newgrp docker docker --version docker compose version
sudo mkdir -p ~/docker/containers/watchtower sudo chown -R $(whoami):$(whoami) ~/docker/containers/watchtower sudo docker run -d --name watchtower --privileged -v /var/run/docker.sock:/var/run/docker.sock -v ~/docker/containers/watchtower:/config --restart unless-stopped containrrr/watchtower
sudo mkdir -p ~/docker/containers/portainer sudo chown -R $(whoami):$(whoami) ~/docker/containers/portainer sudo docker run -d --name portainer --privileged -p 9443:9443 -v /var/run/docker.sock:/var/run/docker.sock -v ~/docker/containers/portainer:/data --restart unless-stopped portainer/portainer-ce
Install Docker via dnf (Moby Engine):
sudo dnf install -y moby-engine docker-compose-plugin sudo systemctl enable --now docker getent group docker || sudo groupadd docker sudo usermod -aG docker $USER newgrp docker docker --version docker compose version
sudo mkdir -p ~/docker/containers/watchtower sudo chown -R $(whoami):$(whoami) ~/docker/containers/watchtower sudo docker run -d --name watchtower --privileged -v /var/run/docker.sock:/var/run/docker.sock -v ~/docker/containers/watchtower:/config --restart unless-stopped containrrr/watchtower
sudo mkdir -p ~/docker/containers/portainer sudo chown -R $(whoami):$(whoami) ~/docker/containers/portainer sudo docker run -d --name portainer --privileged -p 9443:9443 -v /var/run/docker.sock:/var/run/docker.sock -v ~/docker/containers/portainer:/data --restart unless-stopped portainer/portainer-ce
🎉 Portainer is live at https://127.0.0.1:9443 (or your server’s IP). Watchtower will now auto-update your containers daily. Manage your Docker setup through Portainer’s clean UI, deploy new apps, and keep your homelab running smoothly!