🐳 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