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!