Docker Schulung – Softwareentwicklung erfolgreich meistern
In dieser Docker Schulung lernst du, wie containerisierte Entwicklung erhebliche Vorteile für die Vereinheitlichung deiner Prozesse bieten
Beschreibung
Mit dieser Docker Schulung wirst du deinen Code meistern. Docker ist eine Open-Source-Plattform, die Entwicklern und Systemadministratoren ermöglicht, Anwendungen in Containern zu erstellen, bereitzustellen und auszuführen. Container sind leichtgewichtige, portable und eigenständige Softwareeinheiten, die den gesamten Code, die Laufzeit, Bibliotheken und Abhängigkeiten enthalten, die eine Anwendung benötigt, um zu funktionieren. Dies gewährleistet, dass die Anwendung in jeder Umgebung konsistent läuft, unabhängig davon, ob es sich um ein lokales System, ein Rechenzentrum oder eine Cloud-Plattform handelt. Diesen Sachverhalt machen wir uns in der Schulung zu nutze um einheitliche Build-Umgebungen zu schaffen. Unsere Anwendungen sind in diesem Fall nicht unsere Produkte, sondern die Build-Werkzeuge wie Git, Maven, Gradle und andere.
Ein zentrales Konzept ist das Image, eine Template, aus der Container erstellt werden. Images sind in Layern aufgebaut, wobei jeder Layer eine Änderung gegenüber dem vorherigen Layer darstellt. Diese Layer-basierten Images ermöglichen eine effiziente Ressourcennutzung, da mehrere Container denselben Layer teilen können, was Speicherplatz spart. Ein Container ist eine laufende Instanz eines Images. Container sind isoliert und unabhängig, was bedeutet, dass sie ihre eigenen Prozesse, Netzwerk-Stacks und Dateisysteme haben, aber dennoch effizient mit den Ressourcen des Host-Betriebssystems umgehen.
Diese Plattform vereinfacht den Entwicklungsprozess erheblich, indem sie Entwicklern erlaubt, Anwendungen in einer einheitlichen Umgebung zu erstellen und zu testen. Dies reduziert “It works on my machine” Probleme erheblich, da die Anwendung überall gleich läuft. Darüber hinaus unterstützt die Plattform DevOps-Praktiken und Continuous Integration/Continuous Deployment (CI/CD), da Container leicht in automatisierte Workflows integriert werden können.
Zusammengefasst bietet die Plattform eine leistungsstarke, flexible und portable Lösung für die Verwaltung von Anwendungen und deren Abhängigkeiten, was zu einer erhöhten Effizienz und Konsistenz in der Softwareentwicklung und -bereitstellung führt. Im Kontext dieser Schulung sehen wir Container zum Bauen, Debuggen, Testen und zum Freigeben der eigentlichen Produkte. Also ein Build-, Test- oder Release Container in dem z.B. auch eine Delivery oder Deployment Pipeline läuft.
In-House – du interessierst dich für eine In-House Schulung exklusiv für dein Team oder Unternehmen? Frage die Schulung an oder lass dich unverbindlich beraten.
Schulungsziel
In dieser Schulung lernst du, Docker effektiv in Entwicklungs- und Bereitstellungsprozessen einzusetzen. Wir betrachten hauptsächlich die Anwendungsfälle in der Entwicklung eines Softwareprodukts. Das Ziel ist es, eine konsistente, standardisierte und reproduzierbare Entwicklungsumgebung zu realisieren, um somit das Bauen, Debuggen, Testen und die Freigabe des Produktes via Containerisierung zu ermöglichen. Dafür nutzen wir Container in unserer Entwicklungsumgebung und in CI/CD-Pipelines, schauen uns mehrere Rollen in einem Entwicklungsprozess an und erarbeiten in praktischen Übungen eine passende Umgebung für alle Parteien. In dieser Schulung wird nur am Rande darauf eingegangen, wie Docker in der Bereitstellung von containerisierten Anwendungen helfen kann. Der Fokus liegt auf den Anwendungsfällen innerhalb des Entwicklungsprozesses und wie die Container-Technologie die Softwareentwicklung vereinheitlicht.
Zielgruppe
Diese Schulung richtet sich an Entwicklungs-, Test- und QA-Teams sowie an Release Engineers oder DevOps-Engineers, die ein grundlegendes Verständnis von Docker erlangen und die Technologie innerhalb eines Entwicklungsprozesses nutzen oder einführen wollen.
Inhalt
Einführung
- Was ist Docker und warum ist die Technologie wichtig?
- Motivation: Virtuelle Maschine vs. Container
- Architektur und Konzepte
- Build und Test Infrastructure as Code
- Docker Hub und das Ökosystem
- Begrifflichkeiten: Image, Registry, Container, …
- Das Command Line Interace (CLI)
Images
- Erstellen von Images
- Verwendung von Dockefiles zur Automatisierung von Build-Prozessen
- Dockerfiles und Syntax
- Build und Multistage Build
- Starten, Stoppen und Löschen von Containern
Containerisierung
- Images ausführen
- Starten, Stoppen und Löschen von Containern
- Volumes erzeugen und nutzen
- Verbindung und Kommunikation zwischen Containern (Networking und Ports)
- Sicherheit und Isolation von Containern
Continuous Integration
- Continuous Integration im Kontext von Dockerfiles
- Automatisches Erzeugen von Images basierend auf Bamboo oder Jenkins
- Vulnerability Scan (Snyk oder Scout)
Registry
- Arbeiten mit öffentlichen Registries wie Docker Hub
- Erstellen und Verwalten eigener privater Registries (z.B. Nexus)
Praktische Übungen in der Docker Schulung
- Build Container für Entwickler (z.B. Java Build Container)
- Definierte und versionierte Build-Umgebung als Code
- Container als VSCode-Build-Umgebung
- Dev-Team und Jenkins nutzen dieselbe Build-Umgebung
- Orchestrierung einer Systemumgebung für Entwickler, um Test und Debugging produktiver zu gestalten
- Unabhängige und reproduzierbare Build- und Debug-Umgebungen auch für ältere Softwarestände
Bewertung der Schulung
Bereit für DevOps? Mit unseren Zusatzangeboten machen wir mehr aus deiner Schulung.
Individualisierung - Schulungen können mit speziellen Erweiterungen individualisiert werden. Dabei lassen sich Inhalte theoretisch und praktisch anpassen.