Durch Anklicken „Akzeptieren“, stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Seitennavigation zu verbessern, die Nutzung der Website zu analysieren und unsere Marketingaktivitäten zu unterstützen. Sehen Sie sich unsere an Datenschutzrichtlinie für weitere Informationen.
Sep 4, 2024
More

So dockerisieren Sie Ihr Python-Skript

Vom Script zum Container. Von Sanu Maharjan

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.

Was ist Docker?

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“.

Die wichtigsten Konzepte von Docker

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.

Schlüsselkonzept von Docker (Bildquelle: thedeploymentguy.medium.com)

Warum Docker verwenden?

  1. Kohärenz: Container kapseln alle Abhängigkeiten einer Anwendung und stellen so sicher, dass sie in verschiedenen Umgebungen — Entwicklung, Test und Produktion — auf dieselbe Weise ausgeführt wird.
  2. Isolierung: Jeder Container wird in seiner eigenen isolierten Umgebung ausgeführt, wodurch Konflikte zwischen Anwendungen vermieden werden, die auf demselben Host ausgeführt werden.
  3. Portabilität: Docker-Container können auf jedem System ausgeführt werden, das Docker unterstützt, sei es auf dem Laptop eines Entwicklers, auf lokalen Servern oder in Cloud-Umgebungen.
  4. Skalierbarkeit: Docker macht es einfach, Anwendungen horizontal zu skalieren, indem mehrere Container-Instances ausgeführt werden.

Docker installieren

Bevor Sie mit der Containerisierung beginnen, müssen Sie Docker auf Ihrem Computer installieren. Docker bietet Installationsprogramme für verschiedene Betriebssysteme:

  • Windows: Folgen Sie den Anweisungen hier.
  • Mac: Folgen Sie den Anweisungen hier.
  • Linux: Folgen Sie den Anweisungen hier.

Der Installationsvorgang ist unkompliziert und benutzerfreundlich. Docker bietet detaillierte Anleitungen für jede Plattform.

Ein dockerisiertes Python-Skript erstellen

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.]

Erstellen Sie ein Dockerfile

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

  • Docker-Datei ist eine Klartext-Konfigurationsdatei, die eine Sammlung von Befehlen und Parametern enthält, mit denen Docker ein neues Image erstellt.
  • Es ist wie ein Rezept mit schrittweisen Anweisungen zur Zubereitung eines Gerichts.
  • Docker-Bild ist ein leichtes, eigenständiges und ausführbares Softwarepaket, das alle notwendigen Informationen zum Ausführen einer Software enthält, einschließlich Code, Laufzeit, Systemtools, Bibliotheken und Einstellungen.
  • Es ist wie eine gekochte Mahlzeit nach dem Rezept. Es ist bereit, serviert/gegessen zu werden, wird aber noch nicht verzehrt.
  • Docker-Container ist eine Laufzeitinstanz eines Images. Es ist das, was das Bild im Speicher speichert, wenn es ausgeführt wird.
  • Es ist wie ein Diner, der eine Mahlzeit isst. Es ist der eigentliche Prozess des Verzehrs des Gerichts. Wenn mehrere Personen dasselbe Gericht gleichzeitig essen möchten, servieren Sie ihnen mehrere Instanzen dieser Mahlzeit, als ob Sie mehrere Behälter mit demselben Bild laufen lassen würden.

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:

Verstehe das Dockerfile

Lassen Sie uns aufschlüsseln, was die einzelnen Teile tun:

VON python:3.9

  • Wir beginnen mit einer Version von Python 3.9, auf der Python vorinstalliert ist.

WORKDIR /app

  • Innerhalb des Containers arbeiten wir im Verzeichnis /app.

KOPIEREN.

  • Wir kopieren alles aus unserem aktuellen Verzeichnis auf dem Computer in unser aktuelles Verzeichnis im Container.

CMD ["Python“, "main.py „]

  • Sobald unser Container gestartet ist, wird er main.py mit Python ausführen.

Das Image erstellen

Ö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:

Hauchen Sie Ihrem Skript mit Docker Leben ein

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.

Fazit

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!

Weitere Links

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.