検索
ホームページ運用・保守NginxDocker に nginx プラグイン ファイルをインストールする方法は何ですか?

プラグイン ファイルの目的:

  • このファイルは Docker イメージ ファイルによってバインドされていません。変更したり、コンテナーを再起動したり、ファイルを更新したりできます。イメージでは復元されません

  • コンテナの実行中に記録されたログやその他の情報などのファイルは、外部ストレージに自動的に保存され、失われることはありませんコンテナを再起動するため

# コンテナを実行するには 2 つの方法があります:

  • docker run コマンド

  • docker-compose コマンド

docker run コマンド メソッドでは、-v パラメーターを使用して、外部ホスト ディレクトリをコンテナー内のパスにマウントします。複数のマウント ポイントがある場合は、次のように指定します。複数の -v パラメーターを使用してそれらを指定し、絶対パスのみを使用できます。docker-compose コマンドでは、サービス メソッドの説明が簡単です。正確に言うと、サービスには複数のコンテナーを含めることができ、外部パスのマウント構成も同様です。 -v パラメーターを使用して構成します。利点は、相対パス (もちろん docker-compose.yml ファイルのパスを基準とした相対パス) を使用できることです。もう 1 つの利点は、docker-compose でコンテナーを起動するコマンドが比較的単純であることです。

イメージのパッケージ化パス構造が次のとおりであるとします。

├── build.sh
├── docker-compose.yml
├── Dockerfile
├── mynginx.conf
├── nginx-vol
│   ├── conf.d
│   │   └── mynginx.conf
│   ├── html
│   │   └── index.html
│   └── logs
│       ├── access.log
│       └── error.log
└── run.sh

Dockerfile はイメージを構築するための構成ファイルであり、内容は次のとおりです。

FROM nginx
LABEL maintainer="xxx" email="<xxx@xxx.com>" app="nginx test" version="v1.0"
ENV WEBDIR="/data/web/html"
RUN mkdir -p ${WEBDIR}
EXPOSE 5180

Based on nginx の場合、新しいデータ ファイル パスを /data/web/html として指定し、公開ポートは 5180 です。

次のコマンドを使用して新しいイメージをコンパイルします:

docker build -t nginx:test-v1 .

コンパイルされたイメージ タグは test-v1 で、ローカル イメージを表示できます:

docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginx        test-v1   d2a0eaea3fac   56 minutes ago   141MB
nginx        latest    605c77e624dd   9 days ago       141MB

TAG はテストです。v1 イメージはコンパイルされたばかりの新しいイメージです。

nginx 外部ボリューム nginx-vol と関連する conf.d、logs、html フォルダーを作成し、対応するコンテンツを対応するディレクトリに配置します。たとえば、html フォルダー内の iindex.html の内容は次のとおりです。

<html>
        <head>
                <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
                <title>系统时间</title>
        <body>
                <div id="datetime">
                        <script>
                                setInterval("document.getElementById(&#39;datetime&#39;).innerHTML=new Date().toLocaleString();",1000);
                        </script>
                </div>
        </body>
        </head>
</html>

は、実際には現在時刻を表示する単なるページです。

ログ セクションは空です。コンテナの実行中にログを外部ストレージに書き込むことが目的です。コンテナが停止したり、イメージが破壊された場合でも、実行ログは保持されます。以下の

conf.d は nginx の個人用設定で、内容は次のとおりです:

server {
    listen       5180;
    #listen  [::]:5180;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;
    location / {
        root   /data/web/html;
        index  index.html index.htm;
    }
    #error_page  404              /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    # deny access to .htaccess files, if Apache&#39;s document root
    # concurs with nginx&#39;s one
    #location ~ /\.ht {
    #    deny  all;
}

実際、ポートとルート パスは nginx のデフォルトの default.conf に基づいて変更されます。目的は次のとおりです。 nginx の図解 構成ファイルは外部に保存することもできます。独自のプログラムで構成ファイルを変更できる場合、この方法でコンテナの実行中に構成ファイルを変更できます。変更された構成ファイルは実際には外部ストレージに保存されます。コンテナーの実行が停止すると消え、イメージ内のファイルには復元されません。

docker run モード

便宜上、実行コマンドを run.sh などのシェル スクリプトに書き込むことができます。内容は次のとおりです。

docker run --name nginx-v1 -p 15180:5180 -v /home/project/nginx-test/nginx-vol/logs:/var/log/nginx -v /home/project/nginx-test/nginx-vol/conf.d:/etc/nginx/conf.d -v /home/project/nginx-test/nginx-vol/html:/data/web/html -d nginx:test-v1

コマンドに 3 があることを確認してください。各 -v は異なる外部ストレージ マウントに対応し、コンテナ内の異なるディレクトリにマップされます。

-p の後のポート (小文字であることに注意してください) は、それぞれホスト ポートとコンテナ ポートです。つまり、ホストのポート 15180 はコンテナのポート 5180 にマッピングされるため、nginx サービス ポート 5180コンテナによって開始されたホストには、ホストのポート 15180 がマッピングされています。

実行中のコンテナの表示:

docker ps -a
CONTAINER ID   IMAGE           COMMAND                  CREATED         STATUS         PORTS                                                 NAMES
cf2275da5130   nginx:test-v1   "/docker-entrypoint.…"   6 seconds ago   Up 5 seconds   80/tcp, 0.0.0.0:15180->5180/tcp, :::15180->5180/tcp   nginx-v1

詳細なマッピング ビュー:

docker inspect nginx-v1

完全な情報が表示され、完全なストレージ マウント マッピングが「マウント」セクションで確認できます。状態。

ホストの nginx-vol/logs の直下を確認すると、コンテナ内の nginx 実行ログが外部ホストのストレージに自動的に書き込まれていることがわかります。

ls -l nginx-vol/logs/
total 12
-rw-r--r-- 1 root root 1397 1月   8 15:08 access.log
-rw-r--r-- 1 root root 4255 1月   8 15:59 error.log

コンテナの停止:

docker stop nginx-v1

コンテナの削除:

docker rm nginx-v1

docker-compose mode

docker-compose のインストール

apt-get install docker-compose	

docker の書き込み-compose.yml file

version: "3"
services:
        nginx:
                container_name: mynginx
                image: nginx:test-v1
                ports:
                        - 80:5180
                volumes:
                        - ./nginx-vol/html:/data/web/html
                        - ./nginx-vol/logs:/var/log/nginx
                        - ./nginx-vol/conf.d:/etc/nginx/conf.d
                restart: always

container_name: コンテナ名を指定します

image: 使用するイメージと対応するラベル

ports: ホスト ポートとコンテナ ポートのマッピング

ボリューム: 外部ストレージ マウント マッピング

コンテナの開始

docker-compose up -d
Creating network "nginxtest_default" with the default driver
Creating mynginx ...
Creating mynginx ... done

コンテナの表示

docker ps -a
CONTAINER ID   IMAGE           COMMAND                  CREATED          STATUS          PORTS                                           NAMES
635e2999c825   nginx:test-v1   "/docker-entrypoint.…"   24 seconds ago   Up 22 seconds   80/tcp, 0.0.0.0:80->5180/tcp, :::80->5180/tcp   mynginx

コンテナが docker に従って実行されていることがわかります。 compose.yml の設定、ポート、名前、マウントはすべて正常です。ホストのポート 80 へのアクセスは、コンテナーの 5180 サービスに対応します。

コンテナを停止します

docker-compose down
Stopping mynginx ... done
Removing mynginx ... done
Removing network nginxtest_default

ご覧のとおり、docker-compose を使用する方が簡単です。

以上がDocker に nginx プラグイン ファイルをインストールする方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Nginxユニットvs他のアプリケーションサーバーNginxユニットvs他のアプリケーションサーバーApr 24, 2025 am 12:14 AM

nginxunitは、多言語プロジェクトや動的な構成要件に適した、apachetomcat、gunicorn、node.jsビルトインHTTPサーバーよりも優れています。 1)複数のプログラミング言語をサポートします。2)動的な構成リロード、3)高いスケーラビリティと信頼性を必要とするプロジェクトに適した組み込みの負荷分散機能を提供します。

Nginxユニット:アーキテクチャとその仕組みNginxユニット:アーキテクチャとその仕組みApr 23, 2025 am 12:18 AM

Nginxunitは、モジュラーアーキテクチャと動的な再構成機能により、アプリケーションのパフォーマンスと管理性を向上させます。 1)モジュラー設計には、マスタープロセス、ルーター、アプリケーションプロセスが含まれ、効率的な管理と拡張をサポートします。 2)動的再構成により、CI/CD環境に適した、実行時に構成をシームレスに更新できます。 3)多言語サポートは、言語ランタイムの動的なロードを通じて実装され、開発の柔軟性が向上します。 4)イベント駆動型モデルと非同期I/Oによって高性能が達成され、高い並行性の下でも効率的なままです。 5)申請プロセスを分離し、アプリケーション間の相互の影響を減らすことにより、セキュリティが改善されます。

Nginxユニットの使用:アプリケーションの展開と管理Nginxユニットの使用:アプリケーションの展開と管理Apr 22, 2025 am 12:06 AM

nginxunitを使用して、アプリケーションを複数の言語で展開および管理できます。 1)nginxunitをインストールします。 2)PythonやPHPなどのさまざまなタイプのアプリケーションを実行するように構成します。 3)アプリケーション管理に動的構成関数を使用します。これらの手順を通じて、アプリケーションを効率的に展開および管理し、プロジェクトの効率を向上させることができます。

Nginx vs. Apache:Webサーバーの比較分析Nginx vs. Apache:Webサーバーの比較分析Apr 21, 2025 am 12:08 AM

NGINXは、高い並行接続の処理に適していますが、Apacheは複雑な構成とモジュール拡張が必要な​​シナリオにより適しています。 1.Nginxは、高性能と低リソース消費で知られており、高い並行性に適しています。 2. Apacheは、その安定性とリッチモジュール拡張機能で知られています。これは、複雑な構成ニーズに適しています。

Nginxユニットの利点:柔軟性とパフォーマンスNginxユニットの利点:柔軟性とパフォーマンスApr 20, 2025 am 12:07 AM

Nginxunitは、動的な構成と高性能アーキテクチャにより、アプリケーションの柔軟性とパフォーマンスを向上させます。 1.動的構成により、サーバーを再起動せずにアプリケーション構成を調整できます。 2.高性能は、イベント駆動型および非ブロッキングアーキテクチャおよびマルチプロセスモデルに反映され、同時接続を効率的に処理し、マルチコアCPUを利用できます。

Nginx vs. Apache:パフォーマンス、スケーラビリティ、効率Nginx vs. Apache:パフォーマンス、スケーラビリティ、効率Apr 19, 2025 am 12:05 AM

NginxとApacheはどちらも強力なWebサーバーであり、それぞれがパフォーマンス、スケーラビリティ、効率の点で独自の利点と短所を備えています。 1)nginxは、静的なコンテンツを処理し、逆プロキシを逆にするときにうまく機能します。 2)Apacheは、動的コンテンツを処理するときにパフォーマンスが向上し、リッチモジュールサポートが必要なプロジェクトに適しています。サーバーの選択は、プロジェクトの要件とシナリオに基づいて決定する必要があります。

究極の対決:Nginx vs. Apache究極の対決:Nginx vs. ApacheApr 18, 2025 am 12:02 AM

Nginxは、高い並行リクエストの処理に適していますが、Apacheは複雑な構成と機能的拡張が必要な​​シナリオに適しています。 1.Nginxは、イベント駆動型の非ブロッキングアーキテクチャを採用しており、高電流環境に適しています。 2。Apacheはプロセスまたはスレッドモデルを採用して、複雑な構成のニーズに適したリッチモジュールエコシステムを提供します。

Nginx in Action:例と現実世界のアプリケーションNginx in Action:例と現実世界のアプリケーションApr 17, 2025 am 12:18 AM

Nginxは、Webサイトのパフォーマンス、セキュリティ、およびスケーラビリティを改善するために使用できます。 1)逆プロキシおよびロードバランサーとして、Nginxはバックエンドサービスを最適化し、トラフィックを共有できます。 2)イベント駆動型および非同期アーキテクチャを通じて、nginxは高い並行接続を効率的に処理します。 3)構成ファイルでは、静的ファイルサービスやロードバランシングなどのルールの柔軟な定義を可能にします。 4)最適化の提案には、GZIP圧縮の有効化、キャッシュの使用、およびワーカープロセスの調整が含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境