Mit der Beliebtheit der Containerisierungstechnologie beginnen immer mehr Anwendungen, Docker-Container für die Bereitstellung zu verwenden, und Portainer ist als leichtgewichtiger Containermanager auch weithin für seine Benutzerfreundlichkeit und Portabilität bekannt. In diesem Artikel wird erläutert, wie Sie mit PHP einen Open-Source-Container-Manager von Portainer implementieren.
1. Einführung in Portainer
Portainer ist ein leichter Open-Source-Docker-Container-Manager, der Docker-Container, Bilder, Netzwerke und Datenmengen über eine einfache Weboberfläche verwalten kann. Portainer unterstützt eine Vielzahl von Docker-Umgebungen, darunter lokale Docker-, Remote-Docker- und Swarm-Cluster. Das Besondere an Portainer ist, dass es einfach zu verwenden ist und keine komplizierten Vorgänge oder gar die Verwendung der Befehlszeile für die Verwaltung erfordert. Darüber hinaus unterstützt Portainer auch die Verwaltung mehrerer Benutzer und mehrerer Teams, sodass Benutzer problemlos mehrere Projekte verwalten können.
2. PHP implementiert Portainer
Portainer ist in der Go-Sprache geschrieben, aber eine ähnliche Funktion kann auch über PHP implementiert werden. In PHP können Sie Docker-Container mithilfe der Docker-API verwalten und betreiben. Wir können den Guzzle PHP HTTP-Client verwenden, um HTTP-Anfragen an den Docker-Daemon zu senden und die Antwort zu analysieren, um Port-Mapping, Container-Management und andere Funktionen zu implementieren. Zuerst müssen Sie Guzzle PHP in PHP installieren. Informationen zur Installationsmethode finden Sie auf der offiziellen Website von Guzzle (https://docs.guzzlephp.org/en/stable/).
Im Folgenden wird am Beispiel der Verwaltung von Docker-Containern erläutert, wie eine einfache PHP-Version von Portainer implementiert wird. Zuerst müssen Sie ein Zugriffstoken für die Docker-API erhalten. Das Zugriffstoken kann über den folgenden Befehl abgerufen werden:
$ TOKEN=$(curl -s "https://auth.docker.io/token?service=registry.docker.io&scope=repository:library/nginx:pull" | jq -r '.token')
Nachdem Sie das Zugriffstoken erhalten haben, können Sie die Containerliste über den folgenden Code abrufen:
$client = new GuzzleHttpClient([ 'headers' => [ 'Authorization' => 'Bearer ' . $TOKEN, ], ]); $response = $client->get('https://registry.hub.docker.com/v2/repositories/library/nginx/tags/'); $containers = json_decode($response->getBody(), true)['results'];
Das obige Code kann durch Zugriff auf Docker Hub abgerufen werden. Die Etikettenliste des Nginx-Images enthält den Namen, die Versionsnummer, die Größe und andere Informationen des Containers. Ebenso können Sie Portzuordnungen, Containerprotokolle und andere Informationen erhalten, indem Sie auf die Statusinformationen des Containers zugreifen:
$response = $client->get('http://localhost:2375/containers/nginx/json'); $container_info = json_decode($response->getBody(), true);
Nachdem Sie die Containerstatusinformationen erhalten haben, können Sie Vorgänge am Container ausführen, z. B. Starten, Stoppen, Neustarten usw. :
$response = $client->post('http://localhost:2375/containers/nginx/start'); $response = $client->post('http://localhost:2375/containers/nginx/stop'); $response = $client->post('http://localhost:2375/containers/nginx/restart');
3. Zusammenfassung
In diesem Artikel wird die Verwendung von PHP zur Implementierung eines Open-Source-Container-Managers vorgestellt. Obwohl PHP im Vergleich zu Go einige Leistungseinbußen aufweist, bietet die Verwendung von PHP zur Implementierung von Portainer auch einige Vorteile, wie z. B. eine einfache Bereitstellung und Wartung sowie einfache Sekundärinstallation usw. Die Implementierung von Portainer über PHP ermöglicht es mehr Menschen, den Komfort der Containerisierung zu erleben, und setzt sich dafür ein, die Popularisierung und Nutzung der Containerisierungstechnologie zu fördern.
Das obige ist der detaillierte Inhalt vonPHP implementiert den Open-Source-Container-Manager Portainer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!