Docker - Gestion des Conteneurs
Vue d'ensemble
Tous les services de srv759970 sont déployés via Docker et Docker Compose pour assurer l'isolation, la portabilité et la facilité de gestion.
Installation Docker
Version installée
Structure des Services
Organisation des dossiers
/opt/
├── whisperx/ # WhisperX avec RQ queue
├── faster-whisper-queue/ # Faster-Whisper avec RQ queue
├── monitoring/ # Stack Grafana + Prometheus + Loki
├── dashy/ # Dashboard services
├── mkdocs/ # Documentation site
└── wordpress-*/ # Sites WordPress
Commandes Docker Essentielles
Gestion des conteneurs
# Lister tous les conteneurs en cours
docker ps
# Lister tous les conteneurs (y compris arrêtés)
docker ps -a
# Voir les logs d'un conteneur
docker logs <container_name>
docker logs -f <container_name> # Mode suivi
docker logs --tail 50 <container_name> # 50 dernières lignes
# Redémarrer un conteneur
docker restart <container_name>
# Arrêter un conteneur
docker stop <container_name>
# Supprimer un conteneur
docker rm <container_name>
# Exécuter une commande dans un conteneur
docker exec -it <container_name> bash
docker exec <container_name> <commande>
Gestion avec Docker Compose
# Démarrer tous les services
docker-compose up -d
# Arrêter tous les services
docker-compose down
# Voir les logs
docker-compose logs -f
# Redémarrer un service
docker-compose restart <service_name>
# Reconstruire et redémarrer
docker-compose up -d --build
# Vérifier le statut
docker-compose ps
Gestion des images
# Lister les images
docker images
# Supprimer une image
docker rmi <image_id>
# Pull une nouvelle version
docker pull <image_name>
# Nettoyer les images inutilisées
docker image prune -a
Gestion des volumes
# Lister les volumes
docker volume ls
# Inspecter un volume
docker volume inspect <volume_name>
# Supprimer un volume
docker volume rm <volume_name>
# Nettoyer les volumes inutilisés
docker volume prune
Gestion des réseaux
# Lister les réseaux
docker network ls
# Inspecter un réseau
docker network inspect <network_name>
# Créer un réseau
docker network create <network_name>
# Connecter un conteneur à un réseau
docker network connect <network_name> <container_name>
Réseaux Docker Utilisés
whisperx_whisperx
Réseau partagé pour tous les services de transcription: - rq-queue-redis (Redis partagé) - whisperx, whisperx-worker - faster-whisper, faster-whisper-queue-api, faster-whisper-worker - monitoring (rq-exporter)
monitoring_monitoring
Réseau pour la stack de monitoring: - prometheus - grafana - loki - promtail
Bonnes Pratiques
Healthchecks
Tous les services critiques ont des healthchecks configurés:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 10s
timeout: 5s
retries: 3
start_period: 30s
Logs
Configuration de rotation des logs:
Restart Policy
Garantit que les conteneurs redémarrent automatiquement sauf arrêt manuel.
Monitoring Docker
Stats en temps réel
# Stats de tous les conteneurs
docker stats
# Stats d'un conteneur spécifique
docker stats <container_name>
Inspection détaillée
# Inspecter un conteneur
docker inspect <container_name>
# Voir les processus dans un conteneur
docker top <container_name>
# Voir les ports mappés
docker port <container_name>
Dépannage
Conteneur qui redémarre en boucle
# Voir les logs
docker logs --tail 100 <container_name>
# Inspecter le statut
docker inspect <container_name> | grep -A 10 "State"
# Vérifier le healthcheck
docker inspect <container_name> | grep -A 20 "Health"
Problèmes réseau
# Vérifier la connectivité entre conteneurs
docker exec <container1> ping <container2>
# Inspecter le réseau
docker network inspect <network_name>
# Voir les réseaux d'un conteneur
docker inspect <container_name> | grep -A 10 "Networks"
Espace disque
# Voir l'utilisation disque de Docker
docker system df
# Nettoyer tout ce qui est inutilisé
docker system prune -a --volumes
# Nettoyer uniquement les conteneurs arrêtés
docker container prune
# Nettoyer uniquement les images
docker image prune -a
Backup et Restore
Backup d'un volume
docker run --rm \
-v <volume_name>:/data \
-v $(pwd):/backup \
alpine tar czf /backup/<volume_name>-backup.tar.gz -C /data .
Restore d'un volume
docker run --rm \
-v <volume_name>:/data \
-v $(pwd):/backup \
alpine tar xzf /backup/<volume_name>-backup.tar.gz -C /data
Services Démarrés au Boot
Les conteneurs avec restart: unless-stopped redémarrent automatiquement au boot du serveur.
Vérifier que Docker démarre au boot:
Mise à Jour des Services
Procédure standard
cd /opt/<service_name>
# Pull les nouvelles images
docker-compose pull
# Rebuild si custom Dockerfile
docker-compose build --no-cache
# Redémarrer avec nouvelles versions
docker-compose up -d
# Vérifier les logs
docker-compose logs -f
Rollback si problème
# Lister les images disponibles
docker images
# Retourner à une ancienne image
docker tag <old_image_id> <image_name>:latest
docker-compose up -d