コンテナ化テクノロジの人気に伴い、デプロイメントに 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'];
$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');
以上がPHP はオープンソースの Porttainer コンテナー マネージャーを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。