Was ist Docker: Wie man ein Python-Skript mit Docker containerisiert.

Docker ist ein unverzichtbares Tool für Entwickler, da es ihnen ermöglicht, Anwendungen schnell und einfach in einer containerisierten Umgebung zu erstellen, bereitzustellen und zu verwalten. Es bietet eine einfache Möglichkeit, Anwendungen mit allen Abhängigkeiten in einer Einheit zu verpacken, die überall bereitgestellt werden kann.

Docker-Images sind die grundlegenden Bausteine von Docker. Sie bestehen aus einer Reihe von Schichten, die den Anwendungscode, Bibliotheken, Konfigurationsdateien und anderen Ressourcen enthalten, die zum Ausführen der Anwendung benötigt werden. DockerHub ist das offizielle Repository für Docker-Images, das es Entwicklern leicht macht, vorab erstellte Images aus vertrauenswürdigen Quellen zu finden und zu nutzen.

Die Bedeutung von Docker liegt in seiner Fähigkeit, Entwicklungsprozesse zu vereinfachen, indem es Entwicklern eine einfache Möglichkeit bietet, ihre Anwendungen in Container zu verpacken, die überall bereitgestellt werden können. Dies erleichtert es Entwicklern, schneller an Projekten zusammenzuarbeiten, da sie sich nicht um die Einrichtung komplexer Umgebungen oder die Behandlung von Kompatibilitätsproblemen zwischen verschiedenen Systemen kümmern müssen.

In diesem Blog werden wir ein Python-Skript erstellen, das die E-Mail-Verifizierung mit der Minelead API durchführt, es in einem Docker-Image containerisieren und es 24/7 im Hintergrund ausführen.

Anforderungen:

  • Docker und Python installiert

  • Requests-Paket installiert

  • Minelead API-Schlüssel

Gliederung:

  • Wie man eine virtuelle Umgebung in Python einrichtet

  • Wie man E-Mails mit Python verifiziert

  • Wie man ein Docker-Image erstellt

  • Wie man ein Docker-Image ausführt

  • Wie man ein Docker-Image auf DockerHub hochlädt

Wie man eine virtuelle Umgebung in Python einrichtet

Um eine virtuelle Python-Umgebung zu erstellen, müssen wir unser bevorzugtes Terminal im Ordner öffnen, der das Projekt enthalten soll, und den Befehl ausführen:

python -m venv <name_of_virtual_environnement>

Wir werden unsere virtuelle Umgebung "venv" nennen.

Es dauert einige Sekunden, bis der Vorgang abgeschlossen ist. Danach können wir es mit dem Befehl aktivieren:

source venv/bin/activate, oder für Windows-Benutzer source venv/Scripts/activate

Jetzt, da die Umgebung bereit ist, können wir die Pakete installieren, die für das Ausführen unserer Skripte erforderlich sind. Für dieses Beispiel benötigen wir nur das Paket "requests". Wir installieren es mit dem Befehl: pip install requests

Wir müssen alle installierten Pakete im Auge behalten, damit wir sie später auf dem Docker-Image installieren können. Dazu sollten wir alle Pakete mit der verwendeten Version in einer Datei namens "requirements.txt" auflisten. Der Befehl dafür lautet:

pip freeze > requirements.txt

 

Wie man E-Mails mit Python verifiziert

Um E-Mail-Adressen überprüfen zu können, werden wir das Produkt Minelead Verifier verwenden. Dazu müssen wir uns anmelden und den API-Schlüssel erhalten. Nachdem das erledigt ist, können wir mit der Vorbereitung des Skripts beginnen:

import requests

 

api_key = '<api_key>'

 

emails_verify = ['john@minelead.io','jane@minelead.io']

 

def main(email):

    api_url = f'https://api.minelead.io/v1/validate/?email={email}&key={api_key}'

    response = requests.get(api_url).json()

    exists = response.get('exist')

    print(exists)

 

for email in emails_verify:

    main(email)

 

Dieses einfache Skript wird überprüfen, ob die angegebenen E-Mails existieren oder nicht, und uns die Ergebnisse ausgeben. Nachdem wir bestätigt haben, dass es funktioniert, können wir damit beginnen, das Docker-Image zu erstellen, das unser Projekt enthält.

Wie man ein Docker-Image erstellt

Nach der Installation von Docker sollten wir in der Lage sein, die Docker-Befehle auf unserer Befehlszeilenschnittstelle zu verwenden. Der Befehl zum Erstellen eines Docker-Images lautet docker build [Optionen].

Die Parameter, die wir angeben müssen, sind der Pfad zur Docker-Datei und das Tag des Images. Dazu müssen wir die Docker-Datei erstellen, die die Schritte angibt, die Docker befolgen soll, um das Image zu erstellen.

Die Docker-Datei sollte Dockerfile heißen und sich im selben Verzeichnis wie die Dateien requirements.txt und app.py befinden. Ihr Inhalt lautet wie folgt:

 

FROM python:3.8-slim-buster

 

ADD requirements.txt /

 

RUN pip install -r requirements.txt

 

ADD app.py /

 

CMD [ "python", "./app.py" ]

Und jetzt sind wir bereit, das Image zu erstellen. Wir werden den Befehl ausführen: docker build . -t test/verify:latest

Der Punkt nach dem Build bedeutet, dass sich das Dockerfile im selben Ordner wie die Befehlszeilenschnittstelle befindet.

Das -t bedeutet, dass der nächste Parameter das Tag unseres Bildes ist. Der Name vor dem Schrägstrich ist unser Dockerhub-Benutzername (optional), nach dem Schrägstrich folgt der Name des Bildes und der Name nach dem Doppelpunkt ist das Tag des Bildes.

Wie man ein Docker-Image ausführt

Wir haben unser Image bereit zum Ausführen. Der Befehl dafür lautet: docker run [Optionen]

Die Optionen, die wir jetzt angeben müssen, sind der Name des Images, das wir ausführen möchten, und der Name des Containers. Der Befehl lautet also:

docker run --name verifier test/verify:latest

Für Testzwecke dauert das von uns geschriebene Skript nur ein paar Sekunden. Wenn wir jedoch ein Skript haben, das länger dauert oder die ganze Zeit ausgeführt werden muss, müssen wir den Container im Hintergrund ausführen, damit er nicht unterbrochen wird. Wir müssen -d in den Befehl hinzufügen, um dem Docker-Engine mitzuteilen, dass er im Hintergrund ausgeführt werden soll. Der Befehl lautet jetzt:

docker run --name verifier -d test/verify:latest

Um zu überprüfen, ob der Container läuft oder nicht, können wir alle Container auflisten, indem wir den Befehl ausführen: docker container ls.

 

Wie man ein Docker-Image auf DockerHub hochlädt

Wenn wir ein DockerHub-Konto haben, können wir uns mit dem Befehl docker login anmelden.

Wir geben den Benutzernamen und das Passwort ein und führen den Befehl docker push test/verify:latest aus.

Nachdem das erledigt ist, können wir unser DockerHub-Konto aufrufen und prüfen, ob es dort vorhanden ist.

Wenn es dort ist, können wir es schließlich von jedem anderen Rechner aus abrufen, auf dem Docker installiert ist, und erwarten, dass es genauso funktioniert wie auf unserem Rechner.

 

Schlussfolgerung

Containerisierte Anwendungen benötigen wesentlich weniger Arbeitsspeicher als virtuelle Maschinen, sie starten und stoppen schneller und können wesentlich dichter auf der Host-Hardware gepackt werden. Das alles führt zu weniger Ausgaben im IT-Bereich.

In diesem Blog haben wir erklärt, was Docker ist und warum es sehr wichtig ist. Wir haben ein kleines Python-Skript geschrieben, um uns auf ernsthaftere Projekte vorzubereiten.

Wir sind jetzt in der Lage, eine große Anzahl von E-Mails zu verifizieren und den Container rund um die Uhr laufen zu lassen, indem wir ihn im Hintergrund ausführen.

Suche...
×
Passwort festlegen
Sie haben Ihr Konto mit Google SSO erstellt. Sie müssen ein Passwort festlegen.

Telefonische Bestätigung