Images Docker Essentielles
Qu'est-ce qu'une image Docker ?
Les images Docker sont des modèles en lecture seule utilisés pour créer des conteneurs. Elles contiennent des environnements logiciels préconfigurés, le code applicatif, les dépendances et les paramètres d'exécution. Les images Docker servent de modèles pour déployer des environnements applicatifs cohérents et reproductibles sur différents systèmes.
Composants clés des images Docker
graph TD
A[Image Docker] --> B[Couche de base]
A --> C[Couche applicative]
A --> D[Couche de configuration]
| Composant |
Description |
Exemple |
| Couche de base |
Système d'exploitation fondamental |
Ubuntu 22.04 |
| Couche applicative |
Logiciels et dépendances |
Python 3.9, nginx |
| Couche de configuration |
Paramètres d'exécution |
Variables d'environnement |
Création d'une image Docker de base
Voici un exemple de création d'une image simple d'application web Python :
## Créer le répertoire du projet
mkdir docker-demo
cd docker-demo
## Créer le fichier Dockerfile
touch Dockerfile
## Contenu du Dockerfile
cat > Dockerfile << EOL
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y python3 python3-pip
WORKDIR /app
COPY app.py .
RUN pip3 install flask
EXPOSE 5000
CMD ["python3", "app.py"]
EOL
## Créer l'application Flask d'exemple
cat > app.py << EOL
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Exemple d'image Docker"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
EOL
## Construire l'image Docker
docker build -t python-web-app .
Couches d'images et stockage
Les images Docker sont composées de plusieurs couches en lecture seule. Chaque instruction dans le Dockerfile crée une nouvelle couche, permettant un stockage efficace et une création rapide d'images. Lors de la construction d'une image, Docker met en cache ces couches pour optimiser les temps de construction et réduire l'utilisation de l'espace disque.
Identification des images
Les images Docker sont identifiées de manière unique par :
- Nom du dépôt
- Balise
- ID de l'image
Exemple : ubuntu:22.04 ou python-web-app:latest