# Redémarrage automatique des containers utilisant docker.sock ## Problème Lors d’une mise à jour Docker : - `dockerd` redémarre - le socket `/var/run/docker.sock` est recréé - les containers qui l’utilisent (Portainer, Dozzle, Telegraf, etc.) restent UP mais ne fonctionnent plus - `docker compose down/up` corrige car il recrée tout ## Solution Redémarrer automatiquement **uniquement** les containers qui montent `/var/run/docker.sock`, juste après le redémarrage de Docker. --- ## 1. Script de détection + restart Créer le script : ```bash mkdir -p /home/tools/SH cat > /home/tools/SH/docker-restart-sock.sh <<'EOF' #!/bin/sh printf "%-20s %-30s %-18s %-10s\n" "CONTAINER" "IMAGE" "RESTART" "UP(s)" for id in $(docker ps -aq); do if docker inspect -f '{{range .Mounts}}{{.Source}}{{end}}' "$id" \ | grep -q '/var/run/docker.sock'; then name=$(docker inspect -f '{{.Name}}' "$id" | sed 's#^/##') image=$(docker inspect -f '{{.Config.Image}}' "$id") restartp=$(docker inspect -f '{{.HostConfig.RestartPolicy.Name}}' "$id") docker restart "$id" >/dev/null 2>&1 start=$(docker inspect -f '{{.State.StartedAt}}' "$id") now=$(date -u +"%Y-%m-%dT%H:%M:%S.%NZ") up=$(($(date -d "$now" +%s) - $(date -d "$start" +%s))) printf "%-20s %-30s %-18s %-10s\n" "$name" "$image" "$restartp" "$up" fi done EOF