Docker Image Fundamentals
Qu'est-ce qu'une image Docker ?
Une image Docker est un package léger, autonome et exécutable qui inclut tout ce qui est nécessaire pour exécuter un logiciel, y compris le code, l'environnement d'exécution (runtime), les outils système, les bibliothèques et les paramètres. Elle sert de modèle pour créer des conteneurs Docker.
Caractéristiques clés des images Docker
Immuabilité
Les images Docker sont immuables, ce qui signifie qu'une fois créées, elles ne peuvent pas être modifiées. Toute modification nécessite la création d'une nouvelle image.
graph LR
A[Dockerfile] --> B[Build Image]
B --> C[Create Container]
C --> D[Run Application]
Architecture en couches
Les images Docker utilisent un système de fichiers en couches, ce qui permet un stockage et un transfert efficaces des données d'image.
Type de couche |
Description |
Exemple |
Couche de base |
Système d'exploitation de base |
Ubuntu 22.04 |
Couche de dépendance |
Bibliothèques et outils système |
Python, Node.js |
Couche d'application |
Code et configuration de l'application |
Votre application personnalisée |
Méthodes de création d'images
1. Dockerfile
La méthode la plus courante pour créer des images Docker consiste à utiliser un Dockerfile.
## Example Dockerfile for a Python application
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y python3 python3-pip
COPY . /app
WORKDIR /app
RUN pip3 install -r requirements.txt
CMD ["python3", "app.py"]
2. Docker Commit
Vous pouvez créer une image à partir d'un conteneur en cours d'exécution en utilisant docker commit
.
## Create an image from a container
docker commit container_name new_image_name:tag
Convention de nommage des images
Les images Docker suivent un format de nommage spécifique :
repository_name/image_name:tag
- Exemple :
labex/python-app:latest
Commandes de gestion des images
## List local images
docker images
## Pull an image from Docker Hub
docker pull ubuntu:22.04
## Remove an image
docker rmi image_name:tag
Bonnes pratiques
- Gardez les images petites et ciblées
- Utilisez des images de base officielles
- Minimisez le nombre de couches
- Utilisez des builds multi-étapes pour les applications complexes
En comprenant ces bases, vous serez bien équipé pour travailler efficacement avec les images Docker dans votre flux de travail de développement.