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
        
            Rektor: Upgrade der PHP-Anwendung
                            
            
        
            Programmiersprache Go
                            
            
        
            Analyse des Auftrags und der Preisgestaltung bei der Entwicklung von Softwareprojekten
                            
            
        
            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?
                            
            
        
            Welche Plattform sollte ich für meinen E-Shop wählen? Zum Beispiel, Prestashop
                            
            
        
            OpenStreetMap und GPS-Routen auf der Karte im Internet
                            
            
        
            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.
+