Meilleures pratiques pour des images Docker plus petites
Utiliser une image de base allégée
Comme mentionné précédemment, l'utilisation d'une image de base plus petite, telle que alpine
ou scratch
, peut réduire considérablement la taille de votre image Docker. Ces images de base allégées n'incluent que les paquets et dépendances essentiels, minimisant l'empreinte globale.
## Utilisation d'une image de base allégée
FROM alpine:latest
Éviter l'installation de paquets inutiles
Lors de l'installation de paquets dans votre Dockerfile, n'installez que ceux nécessaires à l'exécution de votre application. Évitez d'installer des outils ou utilitaires supplémentaires dont vous n'avez pas besoin, car cela augmentera la taille de votre image.
## Mauvaise pratique : installation de paquets inutiles
RUN apt-get update \
&& apt-get install -y curl wget vim
## Bonne pratique : installation uniquement des paquets nécessaires
RUN apt-get update \
&& apt-get install -y curl
Exploiter les builds multi-étapes
Comme discuté dans la section précédente, les builds multi-étapes peuvent vous aider à créer des images finales plus petites en séparant les environnements de build et d'exécution.
## Dockerfile utilisant un build multi-étapes
FROM golang:1.16 AS builder
COPY . /app
RUN go build -o /app/myapp
FROM alpine:latest
COPY --from=builder /app/myapp /app/myapp
CMD ["/app/myapp"]
Utiliser .dockerignore pour exclure les fichiers inutiles
Le fichier .dockerignore
vous permet de spécifier les fichiers et répertoires qui doivent être exclus du contexte de build Docker. Cela peut contribuer à réduire la taille du contexte de build et, par conséquent, la taille de l'image finale.
## .dockerignore
.git
*.md
Dockerfile
Optimiser les couches d'image
Optimisez votre Dockerfile en combinant plusieurs commandes RUN
, en utilisant l'opérateur &&
, et en évitant les couches inutiles. Cela peut contribuer à réduire le nombre de couches dans votre image, ce qui se traduit par une taille globale plus petite.
## Mauvaise pratique : plusieurs commandes RUN
RUN apt-get update
RUN apt-get install -y curl
RUN apt-get install -y wget
## Bonne pratique : combiner les commandes RUN
RUN apt-get update \
&& apt-get install -y curl wget
Nettoyer régulièrement les ressources inutilisées
Comme mentionné précédemment, le nettoyage régulier des ressources Docker inutilisées, telles que les images, les conteneurs, les réseaux et les volumes, peut contribuer à maintenir votre environnement Docker léger et efficace.
## Nettoyer les ressources Docker inutilisées
docker system prune -a
En suivant ces meilleures pratiques, vous pouvez optimiser efficacement la taille de vos images Docker, les rendant plus efficaces à construire, distribuer et déployer.