🐳 Docker
Conteneurs, images, volumes, réseaux
Aide-mémoire
Docker — Aide-mémoire
Conteneurs
# Lancer un conteneur
docker run -d --name mon-app -p 8080:80 nginx:alpine
Lancer interactif
docker run -it --rm ubuntu:22.04 bash
Lister les conteneurs actifs
docker ps
Lister tous les conteneurs
docker ps -a
Stopper / démarrer / redémarrer
docker stop mon-app
docker start mon-app
docker restart mon-app
Supprimer un conteneur arrêté
docker rm mon-app
Forcer la suppression
docker rm -f mon-app
Logs en temps réel
docker logs -f mon-app
Exécuter une commande dans un conteneur actif
docker exec -it mon-app bash
Copier un fichier vers/depuis un conteneur
docker cp fichier.txt mon-app:/tmp/
docker cp mon-app:/tmp/fichier.txt .
Images
# Lister les images locales
docker images
Télécharger une image
docker pull nginx:alpine
Construire depuis un Dockerfile
docker build -t mon-image:1.0 .
docker build -t mon-image:1.0 -f Dockerfile.prod .
Tagger une image
docker tag mon-image:1.0 registry.example.com/mon-image:1.0
Pousser vers un registry
docker push registry.example.com/mon-image:1.0
Supprimer une image
docker rmi mon-image:1.0
Supprimer toutes les images non utilisées
docker image prune -a
Volumes
# Créer un volume nommé
docker volume create mon-volume
Lister les volumes
docker volume ls
Utiliser un volume nommé
docker run -v mon-volume:/data nginx
Monter un dossier local (bind mount)
docker run -v /chemin/local:/chemin/conteneur nginx
Volume en lecture seule
docker run -v /data:/data:ro nginx
Supprimer les volumes orphelins
docker volume prune
Réseaux
# Lister les réseaux
docker network ls
Créer un réseau bridge
docker network create mon-reseau
Connecter un conteneur à un réseau
docker network connect mon-reseau mon-app
Inspecter un réseau
docker network inspect mon-reseau
Conteneur sans accès réseau
docker run --network none nginx
Ressources & Monitoring
# Statistiques CPU/RAM en temps réel
docker stats
Inspecter un conteneur (JSON complet)
docker inspect mon-app
Voir les processus dans un conteneur
docker top mon-app
Espace disque utilisé par Docker
docker system df
Nettoyage global (conteneurs, images, volumes inutilisés)
docker system prune -a --volumes
Dockerfile
FROM node:20-alpine
Variables d'environnement
ENV NODE_ENV=production
Répertoire de travail
WORKDIR /app
Copier uniquement les fichiers de dépendances d'abord (cache layer)
COPY package*.json ./
RUN npm install --omit=dev
Copier le reste
COPY . .
Exposer le port
EXPOSE 3000
Utilisateur non-root
RUN addgroup -S app && adduser -S app -G app
USER app
Commande de démarrage
CMD ["node", "server.js"]
Multi-stage build
# Stage 1 : build
FROM node:20 AS builder
WORKDIR /app
COPY . .
RUN npm ci && npm run build
Stage 2 : runtime (image légère)
FROM node:20-alpine AS runtime
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
CMD ["node", "dist/index.js"]
🔧 Ouvrir tools.rdr-it.com — application complète →
Plus de 40 outils AdminSys gratuits · SSL · DNS · Docker · Nginx · SSH · Mermaid · et plus