Créer des images Docker légères avec Mmdebstrap sous Linux
Construire des images de conteneur légères avec mmdebstrap pour Docker est un excellent moyen de créer des environnements minimaux et efficaces pour vos applications. Ce processus vous permet de tirer parti de la puissance de Debian tout en gardant vos images petites et faciles à gérer. Dans ce tutoriel étape par étape, nous expliquerons comment construire des images Docker avec mmdebstrap sous Linux.
Ceci est utile pour créer des images Docker optimisées et minimales, telles que des microservices, des pipelines CI/CD ou des applications serverless.
Pourquoi utiliser mmdebstrap ?
- Petites images de base : Elles produisent des systèmes de fichiers racine Debian minimaux, réduisant la taille de l'image.
- Formats de sortie flexibles : Il peut générer des tarballs, squashfs, ou des sorties de répertoire, qui peuvent être facilement importés dans Docker.
- Pas de dépendances : Il ne nécessite pas
dpkgouaptà l'intérieur du conteneur. - Reproductibilité : Il prend en charge des versions de package exactes pour des constructions cohérentes.
Construire des images Docker avec mmdebstrap
mmdebstrap est une alternative moderne, minimale et indépendante de debootstrap pour créer des systèmes de fichiers racine basés sur Debian. Il prend en charge les constructions reproductibles et s'intègre bien avec Docker.
Prérequis
Avant de commencer, assurez-vous d'avoir installé ce qui suit :
Assurez-vous que Docker est installé et fonctionne sur votre système. Sinon, utilisez les liens suivants pour installer Docker sur votre système Linux préféré.
- Installer Docker Engine et Docker Compose sur les systèmes basés sur RPM
- Comment installer Docker Engine et Docker Compose sur Ubuntu
Vous pouvez également utiliser Podman si vous préférez exécuter des conteneurs en mode sans root.
Ensuite, installez mmdebstrap si vous ne l'avez pas déjà fait. Vous pouvez le faire avec la commande suivante :
sudo apt update
sudo apt install mmdebstrapÉtape 1 : Créer un système de fichiers Debian minimal
Nous allons d'abord créer une image Debian de base en utilisant mmdebstrap. Cette image servira de fondation pour notre conteneur Docker.
1. Choisissez une suite Debian :
Décidez quelle version de Debian vous souhaitez utiliser (par exemple, bullseye, bookworm).
2. Créez l'image:
Exécutez la commande suivante pour créer un système de fichiers Debian de base :
mmdebstrap --variant=minbase --include=ca-certificates,curl stable debian-rootfs.tarCela ajoute des paquets requis tels que curl et ca-certificates. Vous pouvez personnaliser davantage le conteneur en installant d'autres paquets supplémentaires ou en effectuant des modifications de configuration.
Ici,
--variant=minbase: Crée un système de base minimal sans paquets superflus.--include=ca-certificates,curl: Installe curl et ca-certificates dans l'image Debian.stable: Spécifie la version de Debian (par exemple,stable,bookwormoubullseye).debian-rootfs.tar: Archive tar de sortie pour le système de fichiers racine.
Vous pouvez également nettoyer les caches de paquets et les journaux à l'intérieur de l'archive avant l'importation :
tar --delete -f debian-rootfs.tar ./var/cache/apt ./var/lib/apt/listsÉtape 2 : Importer le fichier Tar dans Docker
Importez l'image Debian que vous avez créée à l'étape précédente dans Docker en utilisant la commande :
cat debian-rootfs.tar | docker import - debian:customIci,
debian:custom: Assigne un tag à l'image importée.
Étape 3 : Vérifiez les images Docker
Vérifiez si l'image Docker est importée dans votre environnement Docker en utilisant la commande :
docker imagesVous verrez une sortie comme ci-dessous :
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/debian custom 7762908acf49 21 seconds ago 170 MBÉtape 4 : Exécuter le conteneur
Enfin, exécutez le conteneur avec la nouvelle image en utilisant la commande :
docker run -it debian:custom /bin/bashCette commande démarre un nouveau conteneur à partir de votre image et ouvre un terminal interactif.
Si vous voulez exécuter le conteneur en mode détaché, utilisez le drapeau -d.
Conclusion
Utiliser mmdebstrap pour créer des images de conteneur légères pour Docker est un processus simple. En créant un environnement Debian minimal, vous pouvez vous assurer que vos images sont petites et efficaces.
Cette méthode est particulièrement utile pour les développeurs souhaitant créer des images Docker personnalisées adaptées à leurs applications. En seulement quelques étapes, vous pouvez avoir un conteneur Debian entièrement fonctionnel et léger prêt pour vos projets.
Lecture liée :
- Comment créer une image Docker personnalisée en utilisant Dockerfile
- Guide de dépannage pour Mmdebstrap : résoudre les problèmes courants