Containerisierung mit Docker
Lernen Sie, Ihre Scala-Anwendungen mit Docker zu containerisieren, um konsistente Umgebungen und ein vereinfachtes Deployment zu ermöglichen.
Containerisierung mit Docker ist eine kostenlose Scala for Backend Engineering & Functional Programming-Lektion auf CoddyKit. Dies ist Lektion 2 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Scala for Backend Engineering & Functional Programming-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Scala for Backend Engineering & Functional Programming-Kurs umfasst insgesamt 3 Lektionen.
Warum Scala-Anwendungen containerisieren?
Bei der Bereitstellung von Scala-Anwendungen kann es schwierig sein, eine konsistente Umgebung für Entwicklung, Tests und Produktion sicherzustellen. Hier kommt die Containerisierung ins Spiel!
Ein Container bündelt Ihre Anwendung und alle ihre Abhängigkeiten (wie die Java Virtual Machine, Bibliotheken und Konfiguration) in einer einzigen, isolierten Einheit. Dadurch wird sichergestellt, dass sie überall auf dieselbe Weise ausgeführt wird.
Docker: Images und Container
Docker ist die beliebteste Plattform für Containerisierung. Sie basiert auf zwei zentralen Konzepten:
- Docker Image: Ein leichtgewichtiges, eigenständiges und ausführbares Paket, das alles enthält, was zum Ausführen eines Softwarebestandteils erforderlich ist, einschließlich Code, Laufzeitumgebung, Systemwerkzeugen, Systembibliotheken und Einstellungen. Stellen Sie es sich als Vorlage vor.
- Docker Container: Eine ausführbare Instanz eines Docker-Images. Wenn Sie ein Image ausführen, wird es zu einem Container. Container sind voneinander und vom Hostsystem isoliert.
Ihr erster Docker-Run
Versuchen wir, einen ganz einfachen Docker-Container auszuführen. Dieser Befehl lädt das hello-world-Image herunter (falls es noch nicht vorhanden ist) und führt es als Container aus.
Sie sehen eine Meldung, die bestätigt, dass Docker funktioniert!
docker run hello-world
Unsere einfache Scala-Anwendung
Bevor wir die Anwendung containerisieren, erstellen wir eine minimale Scala-Anwendung. Dieses Programm gibt einfach eine Meldung auf der Konsole aus.
Bald verpacken wir die Anwendung in ein Docker-Image!
object Main extends App {
val message = "Hello from CoddyKit's Docker container!"
println(message)
}Bauplan: Die Dockerfile
Eine Dockerfile ist eine Textdatei, die alle Befehle enthält, die ein Benutzer in der Befehlszeile ausführen kann, um ein Image zusammenzustellen. Sie ist wie ein Rezept zum Erstellen Ihres Docker-Images.
Zu den wichtigsten Anweisungen gehören:
FROM: Legt das Basis-Image fest.WORKDIR: Legt das Arbeitsverzeichnis fest.COPY: Kopiert Dateien in das Image.RUN: Führt Befehle während der Image-Erstellung aus.CMD: Gibt den Befehl an, der beim Starten des Containers ausgeführt wird.
Dockerfile: Build-Phase für Scala
Für Scala verwenden wir häufig einen Multi-Stage-Build. In der ersten Phase wird unsere Anwendung erstellt. Zum Kompilieren unseres Scala-Codes verwenden wir ein OpenJDK-Image mit einem vollständigen JDK.
# Stage 1: Build the Scala application
FROM adoptopenjdk/openjdk11:latest as builder
WORKDIR /app
COPY Main.scala .
RUN scalac Main.scala
RUN jar -cvf app.jar Main.classDockerfile: Laufzeitphase für Scala
In der zweiten Phase wird ein deutlich kleineres Image erstellt, das nur die JRE (Java Runtime Environment) und unsere kompilierte Scala-Anwendung (die JAR-Datei) enthält. Dadurch bleibt die Größe des finalen Images minimal.
# Stage 2: Create a minimal runtime image
FROM adoptopenjdk/openjdk11:jre-hotspot
WORKDIR /app
COPY --from=builder /app/app.jar .
CMD ["java", "-jar", "app.jar"]Vollständige Scala-Dockerfile
Hier sehen Sie die vollständige Dockerfile mit mehreren Phasen für unsere Scala-Anwendung. Diese Datei sollte Dockerfile heißen und sich im selben Verzeichnis wie Main.scala befinden.
# Stage 1: Build the Scala application
FROM adoptopenjdk/openjdk11:latest as builder
WORKDIR /app
COPY Main.scala .
RUN scalac Main.scala
RUN jar -cvf app.jar Main.class
# Stage 2: Create a minimal runtime image
FROM adoptopenjdk/openjdk11:jre-hotspot
WORKDIR /app
COPY --from=builder /app/app.jar .
CMD ["java", "-jar", "app.jar"]Docker-Image erstellen
Da wir nun unsere Dockerfile und Main.scala haben, erstellen wir das Docker-Image. Das Flag -t versieht unser Image mit einem Namen (z. B. scala-hello), und . gibt an, dass das aktuelle Verzeichnis den Build-Kontext bildet.
docker build -t scala-hello .
Ihre containerisierte Scala-Anwendung ausführen
Nachdem das Image erstellt wurde, können Sie Ihre Scala-Anwendung mit dem Befehl docker run in einem Docker-Container ausführen. Dadurch wird die in Ihrer Dockerfile definierte Anweisung CMD ausgeführt.
docker run scala-hello
Auf Ihrer Konsole sollte "Hello from CoddyKit's Docker container!" ausgegeben werden!
Wissen überprüfen
Testen Sie Ihr Verständnis von Dockerfiles.
Zusammenfassung: Scala containerisieren
Sie haben erfolgreich die Grundlagen der Containerisierung einer Scala-Anwendung mit Docker gelernt!
- Docker-Images sind Baupläne, Container sind ausführbare Instanzen.
- Eine Dockerfile ist ein Rezept zum Erstellen Ihres Images.
- Multi-Stage-Builds helfen dabei, kleine und effiziente Images für Scala-Anwendungen zu erstellen.
- Befehle wie
docker buildunddocker runverwalten Ihre Images und Container.
Dieses Wissen ist entscheidend, um Scala-Microservices konsistent und zuverlässig bereitzustellen.
Häufig gestellte Fragen
Ist die Lektion „Containerisierung mit Docker“ kostenlos?
Ja — der vollständige Text von „Containerisierung mit Docker“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Scala for Backend Engineering & Functional Programming-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Scala for Backend Engineering & Functional Programming-Kurs umfasst insgesamt 3 Lektionen.
Was lerne ich in „Containerisierung mit Docker“?
Lernen Sie, Ihre Scala-Anwendungen mit Docker zu containerisieren, um konsistente Umgebungen und ein vereinfachtes Deployment zu ermöglichen. Du übst Scala for Backend Engineering & Functional Programming mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Scala for Backend Engineering & Functional Programming zu starten?
Keine Vorkenntnisse erforderlich. Scala for Backend Engineering & Functional Programming auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 3.
Wie lange dauert die Lektion „Containerisierung mit Docker“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Scala for Backend Engineering & Functional Programming-Lektion Code schreiben und ausführen?
Ja. Jede Scala for Backend Engineering & Functional Programming-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Scala-Microservices entwerfen
- Containerisierung mit Docker
- Strategien für Cloud-Deployment