Zweitägiger Praxis-Workshop für .NET-Entwickler: Docker-Grundlagen, mehrstufige Dockerfiles, dotnet publish für Container-Images, Volume-Verwaltung, Docker CLI und Aspire-Integration für lokale Orchestrierung.
Docker verstehen für .NET Entwickler: Images, Publishing und Aspire
Dauer: 2 Tage
Hands-on-Workshop für .NET-Entwickler, um containerisierte Anwendungen mit Docker zu bauen, zu starten und auszuliefern. Sie lernen, Dockerfiles zu schreiben, dotnet publish für Container-Images zu nutzen, Ausgaben anzupassen, Volumes zu verwenden, die Docker-CLI zu bedienen und mit Aspire zu sehen, wie alles modelliert und konfiguriert wird.
Zielgruppe
- .NET-Entwickler ohne Container-Erfahrung
- Teams, die Docker für lokale Entwicklung und Deployment standardisieren
Voraussetzungen
- Grundkenntnisse in C#/.NET-Projekten
- Docker Desktop installiert
Lernziele
- Dockerfiles für .NET-Apps (Build/Publish/Run) schreiben und optimieren
dotnet publishfür Container-Images nutzen; Publishing und Containereigenschaften anpassen- Volumes für Daten/Konfiguration einsetzen und Bind- vs. Named-Volumes verstehen
- Wichtige Docker-CLI-Kommandos bedienen (build, run, ps, logs, exec, cp, prune)
- Aspire einsetzen, um Services, Images und Konfiguration für lokale Orchestrierung zu modellieren
Agenda
- Docker-Grundlagen
- Images, Layer, Container; Registry-Basics
- Multi-Stage-Builds für .NET (restore/build/publish)
- Dockerfiles für .NET
- Basis-Images (SDK vs. ASP.NET Runtime vs. Distroless)
- Build-Args, Env Vars, EntryPoints, Healthchecks
- Trimming/AOT für kleinere Images
dotnet publishfür Containerdotnet publish -c Release -r <rid> --self-containedvs. framework-dependentdotnet publish /p:PublishProfile=DefaultContainerund Container-Properties- Image-Name/Tag, Basis-Image, Container-Umgebung anpassen
- Volumes und Daten
- Bind-Mounts vs. Named-Volumes; Config/Secrets abbilden; Persistenz
- Logs und Datenverzeichnisse nutzen
- Docker-CLI in der Praxis
docker build,docker run,docker compose,docker ps/logs/exec/cp- Tagging, Push/Pull; Aufräumen von Images/Containern
- Aspire-Integration
- Services und Container im AppHost modellieren
- Environment-Variablen, References, Health Checks verdrahten
- Konfiguration und Telemetrie im Aspire-Dashboard betrachten
- Deployment-Aspekte
- Image-Optimierung, Caching, Layer-Hygiene
- Sicherheitsbasics: Non-Root, Secrets, minimale Base-Images
Hands-on Labs
- Multi-Stage-Dockerfile für eine .NET-Web-API erstellen und lokal ausführen
- Mit
dotnet publishein Container-Image erzeugen; Image-Name/Tag und Basis-Image anpassen - Ein Named-Volume für Daten mounten und Persistenz über Neustarts prüfen
- Docker-CLI nutzen, um zu bauen, zu starten, Logs zu inspizieren und in einen Container zu exec-en
- Einen Aspire-AppHost erstellen, der den Service-Container startet, Env Vars setzt und Health Checks exponiert
- Laufenden Container und Telemetrie im Aspire-Dashboard ansehen
Ergebnisse
- Eine funktionierende Sammlung von Dockerfiles und Publish-Settings für .NET-Apps
- Sicherheit im Umgang mit Docker-CLI und Volumes für die lokale Entwicklung
- Ein Aspire-Modell, das Container-Konfiguration, Health und Telemetrie demonstriert