Aller au contenu

Docker Cheat Sheet

Informations générales

docker version
docker info
docker help
docker <command> --help

Gestion des images

Lister les images

docker images

Télécharger une image

docker pull ubuntu
docker pull nginx:latest

Construire une image

docker build -t monimage:1.0 .

Supprimer une image

docker rmi IMAGE_ID
docker rmi nom_image:tag

Nettoyer les images inutilisées

docker image prune
docker image prune -a

Gestion des conteneurs

Lancer un conteneur

docker run nginx
docker run -d nginx
docker run -it ubuntu bash

Note

Options courantes :

-p 8080:80        # mapping port
-v /host:/container  # volume
--name monconteneur
--rm              # suppression automatique
-e VAR=value      # variable d'environnement

Example

docker run -d -p 8080:80 --name web nginx

Lister les conteneurs

docker ps
docker ps -a

Stopper / démarrer un conteneur

docker stop CONTAINER
docker start CONTAINER
docker restart CONTAINER

Supprimer un conteneur

docker rm CONTAINER
docker rm -f CONTAINER

Accès aux conteneurs

Ouvrir un shell

docker exec -it CONTAINER bash
docker exec -it CONTAINER sh

Voir les logs

docker logs CONTAINER
docker logs -f CONTAINER

Inspecter un conteneur

docker inspect CONTAINER

Volumes

Lister les volumes

docker volume ls

Créer un volume

docker volume create monvolume

Inspecter un volume

docker volume inspect monvolume

Supprimer un volume

docker volume rm monvolume

Monter un volume

docker run -v monvolume:/data nginx

Bind mount :

docker run -v $(pwd):/app ubuntu

Réseaux

Lister les réseaux

docker network ls

Créer un réseau

docker network create monreseau

Connecter un conteneur

docker run -d --network monreseau nginx

Inspecter

docker network inspect monreseau

Dockerfile minimal

FROM ubuntu:22.04
RUN apt update && apt install -y curl
WORKDIR /app
COPY . .
CMD ["bash"]

Build et run

docker build -t monapp .
docker run -it monapp

Docker Compose (v2)

Lancer

docker compose up
docker compose up -d

Stopper

docker compose down

Voir les logs

docker compose logs
docker compose logs -f

Redémarrer un service

docker compose restart SERVICE

Example

docker-compose.yml

version: "3.9"
services:
  web:
    image: nginx
    ports:
      - "8080:80"

  redis:
    image: redis

Nettoyage global

Supprimer tout ce qui est inutilisé

docker system prune

Supprimer en incluant les volumes

docker system prune -a --volumes

Debug rapide

Voir les ressources

docker stats

Processus dans un conteneur

docker top CONTAINER

Différence filesystem

docker diff CONTAINER

Export / Import

Sauvegarder une image

docker save -o image.tar monimage

Restaurer

docker load -i image.tar

Export conteneur

docker export CONTAINER > container.tar

Bonnes pratiques

  • utiliser des images officielles
  • limiter la taille des images
  • utiliser .dockerignore
  • éviter latest en production
  • utiliser multi-stage build

Example

FROM golang:1.22 AS build
WORKDIR /app
COPY . .
RUN go build -o app

FROM alpine
COPY --from=build /app/app /app
CMD ["/app"]