ホームページ  >  記事  >  バックエンド開発  >  PHP はオープンソースの Porttainer コンテナー マネージャーを実装します

PHP はオープンソースの Porttainer コンテナー マネージャーを実装します

WBOY
WBOYオリジナル
2023-06-18 16:19:27933ブラウズ

コンテナ化テクノロジの人気に伴い、デプロイメントに Docker コンテナを使用するアプリケーションがますます増えています。Porttainer は、軽量のコンテナ マネージャーとして、その使いやすさと移植性でも広く認識されています。この記事では、PHP を使用してオープンソースの Porttainer コンテナー マネージャーを実装する方法を紹介します。

1. Porttainer の概要

Portainer は、シンプルな Web インターフェイスを通じて Docker コンテナ、イメージ、ネットワーク、およびデータ ボリュームを管理できるオープンソースの軽量 Docker コンテナ マネージャーです。 Porttainer は、ローカル Docker、リモート Docker、Swarm クラスターなど、さまざまな Docker 環境をサポートします。 Porttainerの特徴は、複雑な操作を必要とせず、管理のためにコマンドラインを使用する必要もなく、簡単に使用できることです。さらに、Porttainer はマルチユーザーおよびマルチチームの管理もサポートしているため、ユーザーは複数のプロジェクトを簡単に管理できます。

2. Porttainer の PHP 実装

Portainer は Go 言語で書かれていますが、同様の機能を PHP を通じて実装することもできます。 PHP では、Docker API を使用して Docker コンテナを管理および操作できます。 Guzzle PHP HTTP クライアントを使用して HTTP リクエストを Docker デーモンに送信し、そのレスポンスを解析してポート マッピング、コンテナ管理、その他の機能を実装できます。まず、PHPにGuzzle PHPをインストールする必要がありますが、インストール方法はGuzzle公式サイト(https://docs.guzzlephp.org/en/stable/)を参照してください。

以下では、Docker コンテナの管理を例として、シンプルな PHP バージョンの Porttainer を実装する方法を紹介します。まず、Docker API のアクセス トークンを取得する必要があります。アクセス トークンは次のコマンドで取得できます:

$ TOKEN=$(curl -s "https://auth.docker.io/token?service=registry.docker.io&scope=repository:library/nginx:pull" | jq -r '.token')

アクセス トークンを取得した後、次のコードでコンテナー リストを取得できます。 ##

$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'];

上記のコードは、Docker Hub にアクセスして nginx イメージのタグリストを取得し、返される応答にはコンテナーの名前、バージョン番号、サイズなどの情報が含まれます。同様に、コンテナのステータス情報にアクセスして、ポート マッピング、コンテナ ログ、その他の情報を取得できます。

$response = $client->get('http://localhost:2375/containers/nginx/json');
$container_info = json_decode($response->getBody(), true);

コンテナのステータス情報を取得した後、コンテナに対して起動、停止、実行などの操作を実行できます。再起動など:

$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. 概要

この記事では、PHP を使用してオープン ソースの Porttainer コンテナー マネージャーを実装する方法を紹介します。PHP は Go と比較してパフォーマンスが若干低下しますが、PHP を使用すると、 Porttainer を導入することには、導入とメンテナンスが容易であること、二次開発が容易であることなど、いくつかの利点もあります。 PHP による Porttainer の導入により、より多くの人にコンテナ化による利便性を体験していただき、コンテナ化技術の普及と利用促進に取り組んでまいります。

以上がPHP はオープンソースの Porttainer コンテナー マネージャーを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。