Wurden Sie schon einmal mit der ärgerlichen Zeile „Es funktioniert auf meiner Maschine“ getroffen? Dieser Satz war der Fluch für die Existenz vieler Entwickler und spiegelt die Unvorhersehbarkeit und Inkonsistenz verschiedener Computerumgebungen wider, wie z. B. Unterschiede in Abhängigkeiten, Betriebssystemen, Umgebungsvariablen, Python-Versionen und sogar Netzwerken, die verheerende Schäden anrichten können. Hier kommt Docker ins Spiel — ein Superheld in der Welt der Reproduzierbarkeit. Dieser Beitrag führt Sie durch die spannende Reise, ein Python-Skript in einen Docker-Container zu packen.
Docker ist eine Open-Source-Plattform, die die Bereitstellung, Skalierung und Verwaltung von Anwendungen automatisiert. Es ermöglicht Entwicklern, Anwendungen zusammen mit ihren Abhängigkeiten in einer standardisierten Einheit, einem Container, zu verpacken. Container stellen sicher, dass die Anwendung in verschiedenen Computerumgebungen konsistent ausgeführt wird, und lösen so das uralte Problem „Es funktioniert auf meinem Computer“.
Um Docker besser zu verstehen, lassen Sie uns seine Kernkomponenten aufschlüsseln:
Docker-Datei: Ein Dockerfile ist eine Klartext-Konfigurationsdatei, die eine Sammlung von Befehlen und Parametern enthält. Es beschreibt die Schritte, die zum Erstellen eines Docker-Images erforderlich sind, ähnlich einem Rezept mit schrittweisen Anweisungen zur Zubereitung eines Gerichts.
Docker-Bild:Ein Docker-Image ist ein leichtes, eigenständiges und ausführbares Softwarepaket. Es enthält alles, was zum Ausführen einer Software erforderlich ist: Code, Laufzeit, Systemtools, Bibliotheken und Einstellungen. Stellen Sie sich das wie eine gekochte Mahlzeit nach dem Rezept vor — fertig zum Servieren, aber noch nicht verzehrt.
Docker-Container:Ein Docker-Container ist eine Laufzeitinstanz eines Images. Es ist das, was das Image im Speicher speichert, wenn es ausgeführt wird. Das ist wie ein Diner, der eine Mahlzeit isst — der eigentliche Prozess des Verzehrs des Gerichts. Wenn mehrere Personen dasselbe Gericht gleichzeitig essen möchten, servieren Sie ihnen mehrere Exemplare dieser Mahlzeit, als würden Sie mehrere Behälter mit demselben Bild laufen lassen.
Hier ist eine einfache Abbildung, um das Konzept von Docker zu verstehen.
Bevor Sie mit der Containerisierung beginnen, müssen Sie Docker auf Ihrem Computer installieren. Docker bietet Installationsprogramme für verschiedene Betriebssysteme:
Der Installationsvorgang ist unkompliziert und benutzerfreundlich. Docker bietet detaillierte Anleitungen für jede Plattform.
Für unsere Jungfernfahrt werden wir ein einfaches Python-Skript namens main.py erstellen, das nur verkündet: „Hello World!“ Jetzt fragen Sie sich vielleicht: „Warum sollten Sie sich die Mühe machen, ein so triviales Skript zu containerisieren?“ Nun, obwohl dieses Skript tatsächlich auf fast jedem Computer reibungslos laufen würde, ist es unser Ziel, die Magie von Docker zu verstehen. Und denken Sie daran, sobald Sie die Grundlagen verstanden haben, wird die Skalierung auf kompliziertere Python-Anwendungen ein Kinderspiel sein.
Wenn ich dieses Skript in meinem VSCode ausführe, liefert es pflichtbewusst ein „Hello World!“ Aber stellen Sie sich vor, ich würde dieses großartige Drehbuch mit einem Freund teilen und er stößt auf einen mysteriösen Fehler. Hier kommt Docker ins Spiel!
[Für diejenigen, die nach dem vollständigen Code suchen, hier ist ein Link zu meinem GitHub-Repo.]
Bevor wir das Dockerfile erstellen, wollen wir uns mit der Terminologie von Docker vertraut machen. Es gibt drei Begriffe, auf die Sie sehr häufig stoßen würden, nämlich Dockerfile, Docker Image und Docker Container. Ganz allgemein ausgedrückt
Vor diesem Hintergrund erstellen wir nun ein Dockerfile oder den Blueprint für den Docker-Container. Im selben Verzeichnis wie dein main.py, erstellen Sie eine Datei mit dem Namen Dockerfile. Es wird keine Erweiterung benötigt!
So sollte es aussehen:
Lassen Sie uns aufschlüsseln, was die einzelnen Teile tun:
VON python:3.9
WORKDIR /app
KOPIEREN.
CMD ["Python“, "main.py „]
Öffnen Sie ein Terminal oder eine Eingabeaufforderung im Verzeichnis Ihres Projekts. Feuer aus:
docker build -t docker-tut.
Das -t Docker-tut Ein Teil verleiht unserem Bild einen Namen, damit Sie ihn später leicht wiederfinden können. Fühlen Sie sich frei, Ihr Bild mit einem Namen Ihrer Wahl zu ändern. Und denk dran — der nachfolgende Punkt (.) ist unverzichtbar! Sobald Sie diesen Befehl ausführen, wird das Image erstellt und es sollte ungefähr so aussehen:
Zeit für das Finale. Um unser Python-Skript im Docker-Bereich auszuführen, führen Sie Folgendes aus:
Docker führe Docker-Tut aus
Voilà! Ihre main.py wird in einem eigenen Docker-Container ausgeführt.
Im riesigen Kosmos des Programmierens entpuppt sich Docker als Leuchtturm der Konsistenz. Mit Docker entwickelt sich „Es funktioniert auf meinem Computer“ von einem Seufzer der Frustration zu einem Ehrenzeichen. Wenn Sie die obigen Schritte befolgt haben, haben Sie nicht nur gelernt, ein einfaches Python-Skript zu dockerisieren, sondern haben sich auch auf ein transformatives Abenteuer im Bereich der Container begeben. Möge Ihre Programmierreise reibungslos und fehlerfrei verlaufen, wenn Sie weiter in die Docker-Gewässer hineinsegeln!
Folge uns auf LinkedIn für Einblicke in unsere tägliche Arbeit und wichtige Updates zu BigQuery, Data Studio und Marketing Analytics.
Abonniere unseren YouTube-Kanal für Diskussionen zu DWH, BigQuery, Looker Studio und Google Tag Manager.
Wenn Sie BigQuery von Grund auf lernen möchten, erhalten Sie Zugriff auf unsere kostenloser BigQuery-Kurs
Verbessern Sie Ihre Fähigkeiten mit Google Data Studio und BigQuery, indem Sie sich für unser Udemy-Kurs.
Benötigen Sie Hilfe bei der Einrichtung eines modernen, kostengünstigen Data Warehouse oder eines analytischen Dashboards? Senden Sie uns eine E-Mail an hello@datadice.io um einen Anruf zu vereinbaren.