Python-Programm zur Steuerung von Docker über die API
3. April 2024Sie müssen Docker steuern? Die API, die z. B. über einen Unix-Socket zur Verfügung steht, ist eine großartige Möglichkeit, dies zu tun. Als Programmiersprache können Sie z. B. Python verwenden, eine Skript-Programmiersprache, mit der Sie schnell die von Ihnen benötigten Funktionen entwickeln können. Außerdem gibt es eine Bibliothek für Python, die die Docker-API implementiert, so dass Sie sich einige Arbeit ersparen können. Wie man das macht? Ganz einfach....Ich beschreibe es in diesem Tutorial.
Man kann Docker nicht nur über die Konsole oder ein Orchestrierungswerkzeug steuern, sondern es gibt auch eine API. Die Anwendung Programmierung Ichnittstelle) ist ein Weg (Schnittstelle), um dein Programm zur Steuerung einer anderen Anwendung zu verwenden.
Warum die Docker-API verwenden?
Die Verwendung der Docker-API ist nützlich in Situationen wie:
- Automatisierung und Integration: Die Integration von Docker-APIs in bestehende Tools oder Arbeitsabläufe ermöglicht eine Prozessautomatisierung, die die Arbeitseffizienz erhöht. Dies kann besonders in DevOps-Umgebungen nützlich sein, in denen Sie eine schnelle kontinuierliche Anwendungsentwicklung (CI/CD) durchführen möchten.
- Benutzerdefinierte Tools und Schnittstellen: Die Verwendung der Docker-API ermöglicht es Ihnen, benutzerdefinierte Benutzeroberflächen oder Tools zu erstellen, die den spezifischen Anforderungen oder Prozessen Ihres Unternehmens besser entsprechen.
- Container-Orchestrierung und -Verwaltung: Mit Docker-APIs können Sie das Starten, Stoppen und Verwalten von Containern programmatisch steuern. Dies ist für die Verwaltung einer großen Anzahl von Containern unerlässlich. Tools, die eine solche Aufgabe übernehmen, werden Orchestratoren genannt. Dazu gehören Kubernetes, Docker Swarm und andere.
- Überwachung und Ressourcenmanagement: Mit der Docker-API können Sie den Zustand von Containern überwachen, Metriken und Informationen zur Ressourcennutzung sammeln, die für das Leistungsmanagement und die Skalierung von Anwendungen nützlich sein können.
- Integration mit Cloud-Diensten und anderen Technologien: Die Docker-API ermöglicht die Integration mit verschiedenen Cloud-Diensten und anderen Technologien, was die Flexibilität und Bereitstellungsoptionen für Anwendungen verbessern kann.
Praktische Anwendung
Stellen Sie sich vor, Sie haben eine Anwendung, die Sie ausführen müssen, um Batch-Jobs auszuführen, und jeder Lauf muss unterschiedliche Parameter oder unterschiedliche Eingabedaten haben. Gleichzeitig müssen Sie für die Leistungs- bzw. Lastüberwachung die Ausführung dieser Dienste verwalten. In dieser Situation können Sie Ihr eigenes Programm schreiben, um die erforderlichen Daten zu sammeln und Docker-Container mit den erforderlichen Parametern nach Bedarf auszuführen.
Python-Programm
Hier ist ein grundlegendes Codebeispiel für die Verwendung von Python und Docker API. Diese Anwendung verbindet sich mit der Docker-API und listet alle laufenden Container auf:
#!/usr/bin/env python # -*- coding: utf-8 -*- import Docker client = docker.from_env() c=client.containers.list() print(c) for i in c: print(i) print(i.name)
Quellcode
Das vollständige Beispiel, das in einem Docker-Container ausgeführt werden kann, finden Sie hier: https://github.com/josefjebavy/python-docker-example
Image mit Beispielanwendung erstellen:
docker build -t python-docker-app .
Starten Sie die Anwendung manuell über die Konsole:
docker run -it --rm -v $PWD:/usr/src/app -v /var/run/docker.sock:/var/run/docker.sock --name python-docker-app-run python-docker-app /bin/bash
Der einfachste Weg, das Projekt zu starten, ist mit docker-compose, das auch den initialen Build des Docker-Images mit der Anwendung durchführt:
docker-compose up
Das Wichtigste ist, dass die Anwendung auf den Socket-Docker-Daemon zugreifen kann, so dass der gesamte Docker gesteuert werden kann.
Dokumentation
Dokumentation der Python-Bibliothek zur Steuerung von Docker über die API: https://docker-py.readthedocs.io/en/stable/
Videovorschau
Eine vollständige Video-Demonstration, wie man eine Python-Anwendung vorbereitet und ausführt, die alle laufenden Docker-Container auflistet.
Und andere Möglichkeiten, die Docker-API zu nutzen:
Artikel zu einem ähnlichen Thema
Wie man MailCatcher zum Testen von E-Mails verwendet
Python OpenAI API
Erstellen einer WebSocket-Webanwendung und Einrichten eines Proxys
Projektmanagement: agile Softwareentwicklung
Wie man alte PHP-Anwendungen ausführt
Was ein guter Programmierer wissen sollte
Programmiersprache Rust
NodeJS: Entwicklung, Serverkonfiguration
Nette Sicherheitslücke CVE-2020-15227
REST API: Plattform-API
Kundenspezifisches Web- und E-Mail-Hosting mit ISP Config-Software
Programmierung in SQL: PostgreSQL, MySQL/MariaDB
HTTPS: sicheres Web
NoSQL-Datenbank Mongo DB
Herstellen einer Verbindung zu Microsoft SQL Server unter Linux
Was ist die Stellenbeschreibung eines Programmierers?
Lokalisierung von Python-Anwendungen
Welches Mail- und Webhosting Sie wählen sollten
Digispark - Atmel ATtiny Mikrocontroller mit Arduino IDE programmieren
Entwicklung für ARM-Prozessoren mit Arduino IDE
Wie programmiere ich den ESP8266 WiFi-Prozessor?
Offenes Smartphone mit Linux - Openmoko Neo FreeRunner
Newsletter
Wenn Sie daran interessiert sind, gelegentlich Neuigkeiten per E-Mail zu erhalten.
Sie können sich registrieren, indem Sie Ihre E-Mail-Adresse eingeben
News-Abonnement.
+