Aller au contenu principal

Gestion des conteneurs


Objectifs du chapitre

  • Créer des conteneurs via l'interface
  • Gérer le cycle de vie des conteneurs
  • Utiliser les logs et la console
  • Monitorer les performances

1 - Créer un conteneur

Via l'interface

  1. Aller dans Containers > + Add container
  2. Configurer les paramètres

Paramètres de base

┌─────────────────────────────────────────────────────────────────┐
│ + Add container │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Name: [mon-nginx ] │
│ │
│ Image: [nginx:alpine ] [🔍 Search] │
│ │
│ ☐ Always pull the image │
│ │
└─────────────────────────────────────────────────────────────────┘

Configuration des ports

┌─────────────────────────────────────────────────────────────────┐
│ Network ports configuration │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ☑ Publish all exposed ports │
│ │
│ Manual port mapping: │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Host Container Protocol │ │
│ │ [8080 ] [80 ] [TCP ▼] [+ Add port] │ │
│ │ [8443 ] [443 ] [TCP ▼] [🗑️] │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘

Configuration avancée

TabOptions
Command & loggingCommand, entrypoint, working dir, user, console
VolumesBind mounts, volumes, tmpfs
NetworkNetwork mode, hostname, DNS, hosts
EnvVariables d'environnement
LabelsLabels Docker
Restart policyPolitique de redémarrage
Runtime & ResourcesLimites CPU/mémoire, privileges
CapabilitiesLinux capabilities

Exemple : Créer un conteneur nginx

Paramètres:
- Name: web-server
- Image: nginx:alpine
- Ports: 8080:80
- Volume: ./html:/usr/share/nginx/html
- Restart policy: Unless stopped

2 - Actions sur les conteneurs

Actions rapides

IcôneActionDescription
▶️StartDémarrer le conteneur
⏹️StopArrêter gracieusement
🔄RestartRedémarrer
⏸️PauseMettre en pause
▶️UnpauseReprendre
🔪KillForcer l'arrêt (SIGKILL)
🗑️RemoveSupprimer

Actions avancées

ActionDescription
Duplicate/EditCréer une copie ou modifier
RecreateRecréer avec la même config
AttachAttacher le terminal
LogsVoir les logs
InspectJSON complet
StatsMétriques temps réel

3 - Logs des conteneurs

Visualisation des logs

┌─────────────────────────────────────────────────────────────────┐
│ 📋 Logs - nginx │
├─────────────────────────────────────────────────────────────────┤
│ Options: [Auto-refresh ☑] [Timestamps ☑] [Lines: 100 ▼] │
│ [Wrap ☑] [Download] │
├─────────────────────────────────────────────────────────────────┤
│ 2024-01-15 10:30:05 /docker-entrypoint.sh: Launching nginx │
│ 2024-01-15 10:30:05 nginx: [notice] using the "epoll" event │
│ 2024-01-15 10:30:06 192.168.1.1 - - "GET / HTTP/1.1" 200 │
│ 2024-01-15 10:31:15 192.168.1.1 - - "GET /api HTTP/1.1" 404 │
│ 2024-01-15 10:32:00 192.168.1.2 - - "GET / HTTP/1.1" 200 │
│ │
└─────────────────────────────────────────────────────────────────┘

Options de logs

OptionDescription
Auto-refreshMise à jour automatique
TimestampsAfficher les horodatages
LinesNombre de lignes à afficher
WrapRetour à la ligne automatique
DownloadTélécharger les logs
SearchRechercher dans les logs

4 - Console (Exec)

Accéder au terminal

┌─────────────────────────────────────────────────────────────────┐
│ 💻 Console - nginx [Connect] │
├─────────────────────────────────────────────────────────────────┤
│ Command: [/bin/sh ▼] │
│ User: [root ] │
├─────────────────────────────────────────────────────────────────┤
│ │
│ / # ls -la │
│ total 80 │
│ drwxr-xr-x 1 root root 4096 Jan 15 10:30 . │
│ drwxr-xr-x 1 root root 4096 Jan 15 10:30 .. │
│ drwxr-xr-x 2 root root 4096 Jan 10 00:00 bin │
│ drwxr-xr-x 5 root root 340 Jan 15 10:30 dev │
│ drwxr-xr-x 1 root root 4096 Jan 15 10:30 etc │
│ / # _ │
│ │
└─────────────────────────────────────────────────────────────────┘

Commandes utiles dans la console

# Vérifier les processus
ps aux

# Voir la configuration
cat /etc/nginx/nginx.conf

# Tester la connectivité
ping google.com

# Voir les variables d'environnement
env

# Vérifier l'espace disque
df -h

5 - Statistiques en temps réel

Dashboard de stats

┌─────────────────────────────────────────────────────────────────┐
│ 📊 Stats - nginx │
├─────────────────────────────────────────────────────────────────┤
│ │
│ CPU Usage │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ ████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2.5% │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ Memory Usage │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ ██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 35.2% │ │
│ │ 45.2 MB / 128 MB │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ Network I/O │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ ↓ 1.2 MB received ↑ 856 KB sent │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ Block I/O │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Read: 4.5 MB Write: 1.2 MB │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘

Métriques disponibles

MétriqueDescription
CPU %Utilisation CPU
MemoryRAM utilisée / limite
Network RXDonnées reçues
Network TXDonnées envoyées
Block ReadLecture disque
Block WriteÉcriture disque
PIDsNombre de processus

6 - Inspecter un conteneur

Informations détaillées

┌─────────────────────────────────────────────────────────────────┐
│ 🔍 Inspect - nginx │
├─────────────────────────────────────────────────────────────────┤
│ │
│ { │
│ "Id": "abc123def456...", │
│ "Created": "2024-01-15T10:30:00.000000000Z", │
│ "Path": "/docker-entrypoint.sh", │
│ "Args": ["nginx", "-g", "daemon off;"], │
│ "State": { │
│ "Status": "running", │
│ "Running": true, │
│ "StartedAt": "2024-01-15T10:30:05.000000000Z" │
│ }, │
│ "Image": "sha256:...", │
│ "NetworkSettings": { │
│ "IPAddress": "172.17.0.2", │
│ "Ports": { │
│ "80/tcp": [{"HostPort": "8080"}] │
│ } │
│ } │
│ } │
│ │
└─────────────────────────────────────────────────────────────────┘

7 - Duplicate/Edit

Modifier un conteneur

Pour modifier un conteneur existant :

  1. Sélectionner le conteneur
  2. Cliquer sur Duplicate/Edit
  3. Modifier les paramètres
  4. Cliquer sur Deploy the container
┌─────────────────────────────────────────────────────────────────┐
│ Duplicate/Edit container: nginx │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ⚠️ This will stop and recreate the container │
│ │
│ Name: [nginx-v2 ] │
│ Image: [nginx:1.25-alpine ] (modified) │
│ │
│ Ports: │
│ [8080] → [80] │
│ [8443] → [443] (new) │
│ │
│ [Deploy the container] [Cancel] │
│ │
└─────────────────────────────────────────────────────────────────┘

8 - Actions en masse

Sélection multiple

┌─────────────────────────────────────────────────────────────────┐
│ 📦 Containers │
├─────────────────────────────────────────────────────────────────┤
│ [Selected: 3] Actions: [Start] [Stop] [Kill] [Remove] │
├─────────────────────────────────────────────────────────────────┤
│ ☑ nginx 🟢 Running │
│ ☑ postgres 🟢 Running │
│ ☑ redis 🟢 Running │
│ □ old-app 🔴 Stopped │
│ │
└─────────────────────────────────────────────────────────────────┘

Filtres

FiltreOptions
StateRunning, Stopped, All
NameRecherche par nom
ImageFiltrer par image
NetworkFiltrer par réseau

9 - Bonnes pratiques

Nommage

# ✅ Bon
web-server
api-backend-prod
database-postgres-v15

# ❌ Mauvais
container1
test
abc

Ressources

Toujours définir des limites :

Memory limit: 512 MB
CPU limit: 0.5

Restart policy

PolicyUsage
NoTests
AlwaysServices critiques
On-failureApplications instables
Unless-stoppedProduction standard

Résumé

ActionComment
Créer+ Add container
Démarrer/ArrêterBoutons d'action
LogsOnglet Logs
ConsoleOnglet Console
StatsOnglet Stats
ModifierDuplicate/Edit
SupprimerRemove
Points clés
  • L'interface permet toutes les opérations de la CLI
  • Les logs et la console facilitent le débogage
  • Les stats permettent le monitoring en temps réel
  • Duplicate/Edit permet de modifier sans downtime

Exercices pratiques

  1. Créez un conteneur nginx avec les ports 8080:80
  2. Accédez à la console et listez les fichiers
  3. Surveillez les statistiques pendant une charge
  4. Modifiez le conteneur pour changer l'image

← Interface utilisateur | Gestion des images →