Skip to content

Instantly share code, notes, and snippets.

@brahimmachkouri
Last active May 30, 2025 19:07
Show Gist options
  • Save brahimmachkouri/71c358b935ff59074897e6e3e45ff383 to your computer and use it in GitHub Desktop.
Save brahimmachkouri/71c358b935ff59074897e6e3e45ff383 to your computer and use it in GitHub Desktop.
Ubuntu : install Portainer
#!/usr/bin/env bash
set -euo pipefail
cleanup() { [[ -n "${SUDO_LOOP_PID:-}" ]] && kill "$SUDO_LOOP_PID"; }
trap cleanup EXIT
command -v sudo >/dev/null || { echo "❌ sudo manquant"; exit 1; }
sudo -v
( while true; do sudo -n true; sleep 60; done ) & SUDO_LOOP_PID=$!
command -v docker >/dev/null || { echo "❌ Installe Docker d’abord"; exit 1; }
container=portainer
image=portainer/portainer-ce:lts
# Mise à jour de l’image
sudo docker pull "$image" --quiet
# Supprime l’ancien conteneur si besoin
if sudo docker ps -a --format '{{.Names}}' | grep -q "^${container}$"; then
echo "♻️ Redéploiement de Portainer"
sudo docker rm -f "$container"
fi
# Création du volume si absent
sudo docker volume inspect portainer_data &>/dev/null || \
sudo docker volume create portainer_data
sudo docker run -d --name "$container" \
--restart=always \
-p 8000:8000 -p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
"$image"
echo "✅ Portainer déployé. URL : https://$(hostname -I | awk '{print $1}'):9443"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment