クラウド コンピューティングとコンテナ テクノロジーの台頭により、コンテナ オーケストレーション プラットフォームへの注目がますます高まっています。 Rancher は、Kubernetes、Mesos、Docker Swarm などのさまざまなコンテナ オーケストレーション ツールをサポートするオープン ソースのコンテナ管理プラットフォームであり、使いやすい Web 管理インターフェイスを提供し、コンテナ クラスタの運用と保守をより便利かつ効率的にします。この記事では、Rancher に似たコンテナ管理プラットフォームを PHP ベースで開発する方法を紹介します。
開発を開始する前に、次のツールを準備する必要があります:
開発前に、いくつかの PHP 依存関係パッケージをインストールする必要があります。これは Composer を使用してインストールできます。ターミナルでコード ディレクトリに入り、次のコマンドを実行します。
composer install
このコマンドは、composer.json ファイルから PHP の依存関係を読み取り、ベンダー ディレクトリにインストールします。
コードの作成を開始する前に、アプリケーションをデプロイするための Docker イメージを構築する必要があります。コード ディレクトリに、次の内容を含む Dockerfile という名前のファイルを作成します:
FROM php:7.4-apache
COPY . /var/www/html
RUN rm /etc/apt/preferences.d/no-debian-php &&
apt-get update && apt-get install -y git unzip libzip-dev && docker-php-ext-install -j$(nproc) zip && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUNamper install --no-interaction --no-dev --prefer-dist &&
chown -R www-data:www-data /var/www/html
EXPOSE 80
この Dockerfile は、公式 PHP 7.4 イメージをベース イメージとして使用し、Apache、Git、unzip、PHP zip 拡張機能などのツールをインストールします。 PHP 依存関係パッケージのインストールを容易にするために、Composer もインストールされます。最後に、コンテナはポート 80 でリッスンし、HTTP リクエストを受信できるようになります。
次に、次のコマンドを使用してイメージを構築します:
docker build -t my-rancher .
このコマンドは、現在のディレクトリに my-rancher という名前のイメージを構築します。ディレクトリ 以下の Dockerfile がモデル化されています。
コードを記述する前に、まず Docker API を理解する必要があります。 Docker は、HTTP リクエストを通じてアクセスしてコンテナーを作成、管理、監視できる RESTful API インターフェイスを提供します。たとえば、次のコマンドを使用すると、現在実行中のすべてのコンテナを一覧表示できます:
curl --unix-socket /var/run/docker.sock http:/v1.24/containers/json
そのうち、/var/run/docker.sock は Docker の UNIX ソケットです。つまり、このソケットを使用して Docker API にアクセスします。 TCP ポートを使用して API にアクセスすることもできます。
この基礎があれば、コードを書き始めることができます。コード ディレクトリに、次の内容を含む、index.php という名前のファイルを作成します:
6767f539a801311341c5b8b2d12c53ecget( ' /v1.24/containers/json');
$containers = json_decode($response->getBody());
foreach ($containers as $container) {
$name = str_replace('/', '', $container->Names[0]); echo "<li>$name</li>";
}
?>
このファイルは、Guzzle HTTP クライアント ライブラリを使用して Docker API にアクセスし、実行中のすべてのコンテナのリストを取得して一覧表示します。
これで、次のコマンドを使用してコンテナを起動できます:
docker run -d --name my-rancher -p 80 :80 my-rancher
このコマンドは、my-rancher コンテナを起動し、コンテナのポート 80 をホストのポート 80 にマップします。これで、http://localhost にアクセスし、ブラウザ経由でアプリケーションにアクセスできるようになりました。
この記事では、PHP に基づいて Rancher のようなコンテナ管理プラットフォームを構築する方法を紹介します。 Docker と PHP 7.0 以降を使用し、Docker API にアクセスするコードを記述し、PHP の依存関係を管理するために Composer を使用します。 Rancher のようなコンテナ管理プラットフォームを構築するには、より多くの開発作業が必要ですが、このチュートリアルは、読者が PHP を使用して Docker API と対話する方法を理解し、その後の開発の基盤を提供するのに役立ちます。
以上がPHP はオープンソースの Rancher コンテナ管理プラットフォームを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。