Docker est un outil permettant de créer, déployer et exécuter des applications dans des conteneurs.
🧱 C'est quoi un conteneur ?
Un conteneur Docker est une unité légère et portable qui contient tout ce qu’il faut pour exécuter une application :
-
Le code
-
Les dépendances (bibliothèques, runtime, etc.)
-
La configuration
-
Le système d'exploitation minimal
Contrairement aux machines virtuelles, les conteneurs partagent le noyau de l’OS et sont donc beaucoup plus légers et rapides.
🔄 À quoi sert Docker ?
-
🧪 Faire tourner une app localement comme en production
-
📦 Emballer votre application pour un déploiement automatisé (CI/CD)
-
🧩 Isoler les composants d'une architecture (ex : app + base de données)
-
🌍 Exécuter la même app sur n’importe quel système
🛠 Exemple avec une application C# (.NET)
🎯 Objectif :
Conteneuriser une application console ou Web API C# avec Docker.
📁 Structure du projet :
/MonProjet
├── Program.cs
├── MonProjet.csproj
└── Dockerfile
🧪 Exemple simple : Web API .NET 8 (C#)
Program.cs
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello depuis Docker !");
app.Run();
🐳 Dockerfile
# Étape 1 : build
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app
COPY . ./
RUN dotnet publish -c Release -o out
# Étape 2 : runtime
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /app
COPY --from=build /app/out ./
ENTRYPOINT ["dotnet", "MonProjet.dll"]
📦 Commandes Docker :
-
Construire l’image :
docker build -t mon-projet-dotnet .
-
Lancer le conteneur :
docker run -p 8080:80 mon-projet-dotnet
-
Tester dans le navigateur :
http://localhost:8080
⚠️ Remarques :
-
docker-compose.ymlpeut être utilisé pour gérer plusieurs services (ex : app + SQL Server). -
Docker est idéal pour les microservices .NET.
📌 Résumé
| Terme | Description |
|---|---|
| Docker | Outil de gestion de conteneurs |
| Image Docker | Modèle d'un conteneur (comme une recette) |
| Conteneur Docker | Instance d'une image en cours d'exécution |
| Dockerfile | Script qui décrit comment construire l’image |
docker build/run |
Commandes pour compiler et exécuter |
Ok, on va clarifier ça bien : Docker et kubenet ne sont pas exactement la même chose ; l’un est pour les conteneurs, l’autre pour le réseau des pods dans Kubernetes. Voyons ça en détail.
1️⃣ Docker
Docker est une plateforme de conteneurisation.
-
Elle permet de mettre une application et toutes ses dépendances dans un “conteneur” isolé.
-
Un conteneur est léger et portable, contrairement à une machine virtuelle qui virtualise tout le système d’exploitation.
Exemple concret :
-
Tu as une application Python qui a besoin de
Flasketnumpy. -
Avec Docker, tu crées un Dockerfile qui décrit l’environnement :
-
Puis tu crées une image Docker et tu l’exécutes partout exactement de la même façon.
Avantages Docker :
-
Isolation des applications
-
Portabilité entre machines
-
Déploiement rapide
2️⃣ kubenet
kubenet est un plugin réseau de Kubernetes.
Kubernetes orchestre des conteneurs (souvent Docker) en les groupant en pods. Chaque pod a besoin d’un réseau pour communiquer avec d’autres pods ou avec l’extérieur. C’est là qu’intervient kubenet.
Caractéristiques de kubenet :
-
C’est un plugin réseau simple intégré à Kubernetes.
-
Attribue des IP aux pods.
-
Permet aux pods de communiquer entre eux sur le même nœud.
-
Pour la communication entre nœuds, il utilise NAT (Network Address Translation).
Limite :
-
Pas aussi avancé que des plugins réseau comme Calico ou Cilium, surtout pour la sécurité et la communication inter-nœuds.
🔹 Résumé rapide
| Concept | Fonction principale |
|---|---|
| Docker | Crée et exécute des conteneurs isolés |
| kubenet | Gère le réseau des pods dans Kubernetes |
💡 En gros : Docker fait tourner les conteneurs, Kubernetes les orchestre, et kubenet s’assure que les pods peuvent se parler sur le réseau.
Aucun commentaire:
Enregistrer un commentaire