DockerでPHPアプリケーションをデプロイする方法
Docker による PHP アプリケーションのデプロイ方法: 1. 基本的な PHP Web プロジェクト サイト 1 を作成し、それをイメージにパッケージ化します; 2. イメージ内の PHP 組み込み Web サーバーを使用して外部サービスを提供します; 3.ホスト マシン上でプロジェクト ディレクトリをコンテナの作業ディレクトリにマウントします; 4. fpm モードで php を実行します。
このチュートリアルの動作環境: Windows 7 システム、Docker バージョン 20.10.11、Dell G3 コンピューター。
Docker を使用して php アプリケーションをデプロイするにはどうすればよいですか?
docker を使用して php アプリケーションをパッケージ化してデプロイする
プロジェクトの開発が徐々に完了したら、大規模なクラスターのデプロイメントの準備が必要になります。これを繰り返します。環境のインストール、設定、およびソース コードのアップロード作業は難しくありませんが、退屈で退屈で非効率的です。プロジェクトのリリース バージョンが対応する Docker イメージにパッケージ化されている場合は、イメージをプルし、コンテナーを作成して、各アプリケーション サーバー上のコンテナー (3 行の非常に単純なコマンドで、Walle と Jenkins は簡単かつ完全に自動化できます)。
PHP プロジェクトを Docker イメージにパッケージ化する方法を考えてみましょう。
シンプルな php docker イメージ
基本的な php Web プロジェクト site1 を作成し、それをイメージにパッケージ化し、イメージ内の php 組み込み Web サーバーを使用して外部サービスを提供します。
# 创建项目 mkdir /src/site1 && cd /src/site1 # 写一个简单的 php 页面 vim index.php <?php echo "hello docker"; :wq # 编写项目的 Dockerfile vim Dockerfile # 拉取 php-cli 镜像 FROM php:7.2-cli # copy 项目源文件到镜像 COPY . /apps/site1 # 切换 pwd WORKDIR /apps/site1 # 执行启动命令 使用 php 内置 web 服务器 CMD ["php", "-S 0.0.0.0:80", "-t ./"] :wq # 使用 Dockerfile 创建镜像 site1 版本号为 1.0.0 docker build -t php-site1:1.0.0 . # 查看镜像 docker images # 创建容器 docker run -it -d \ -p 8081:80 \ --name php_site1_1.0.0 \ php-site1:1.0.0 # 查看活动的容器 docker ps # 访问 php 应用 curl -X GET http://localhost:8081/index.php
拡張インストール
php docker イメージはデフォルトでシステムとして debian を使用しますが、これは比較的大きいため、代わりによりコンパクトな alpine イメージを使用できます。次に、swoole/redis 拡張機能をインストールします (他の一般的に使用される拡張機能、公式 php イメージがインストールされています)。
vim server.php
<?php $httpServer = new Swoole\Http\Server("0.0.0.0", 80); $httpServer->set([ 'worker_num' => 1, ]); $httpServer->on("start", function ($server) { echo "Swoole http server is started at http://0.0.0.0:80" . PHP_EOL; }); $httpServer->on("request", function ($request, $response) { // 模拟业务耗时 体验下 swoole 的协程并发 Swoole\Coroutine::sleep(2); $response->header("Content-Type", "text/plain"); $response->end("Hello World"); }); $httpServer->start(); vim Dockerfile FROM php:7.2-cli-alpine # 更新下 apk 的源 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories RUN apk update && apk upgrade RUN apk add m4 make autoconf gcc g++ linux-headers pcre RUN pecl install swoole \ && pecl install redis RUN docker-php-ext-enable swoole \ && docker-php-ext-enable redis COPY . /apps/site2 WORKDIR /apps/site2 ENTRYPOINT ["php", "server.php"]
イメージのパッケージ化
docker build -t php-site2:1.0.0 . docker images
コンテナの作成
# 创建容器 docker run -it -d \ -p 8082:80 --name php_site2_1.0.0 php-site2:1.0.0 # 查看容器 docker ps # 并发压测 swoole 的协程模式可实现EventLoop异步非阻塞IO ab -c 100 -n 1000 http://localhost:8081/
プロジェクトをホスト マシンにマッピングする場合は、次のことができます。
docker run -it -d \ -p 80:80 -v $PWD:/apps/site2 --name php_site2_1.0.0 php-site2:1.0.0
この方法では、ホスト上のプロジェクト ディレクトリがコンテナの作業ディレクトリにマウントされます。これは、コンテナをランタイム環境として使用するのと同じです。
php:7.2-apache php:{PHP_VERSION}-apache,以 Apache + MOD_PHP 模式运行容器。 docker run -it -d \ --name php-mod-alpine \ -p 8083:80 \ -v $PWD:/var/www/html php:7.2-apache
<?php echo "hello docker"; :wq curl -X GET http://localhost:8083/index.php php:7.2-fpm-apline php:{PHP_VERSION}-fpm php:{PHP_VERSION}-fpm-apline
vimindex.php
docker run -it -d \ --name php-fpm-alpine \ -p 9000:9000 \ php:7.2-fpm-apline
fpm モードで実行する php の場合、apline OS を選択できます
rrreee推奨学習: " PHP ビデオ チュートリアル>>
以上がDockerでPHPアプリケーションをデプロイする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop&lt; container_name&gt;コマンドを使用するDocker Kill&lt; container_name&gt;ホストターミナルのコマンド(フォース出口)

Dockerコンテナを再起動する方法:コンテナID(Docker PS)を取得します。コンテナを停止します(docker stop&lt; container_id&gt;);コンテナを起動します(docker start&lt; container_id&gt;);再起動が成功していることを確認します(Docker PS)。その他の方法:Docker Compose(Docker-Compose Restart)またはDocker API(Dockerドキュメントを参照)。

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]&lt; Container Path&gt; &lt;ホストパス&gt;。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。
