ホームページ  >  記事  >  運用・保守  >  dockerを使用してnginxが提供するWebサービスをインストールする方法

dockerを使用してnginxが提供するWebサービスをインストールする方法

PHPz
PHPz転載
2023-05-24 23:38:171496ブラウズ

1. イメージをプルする

docker pull コマンドはアプリケーション イメージをプルするために使用され、docker pull nginx コマンドは最新バージョンの nginx イメージをプルするために使用されます。以下は、イメージ取得プロセスの応答結果です:

# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
c229119241af: Pull complete 
2215908dc0a2: Pull complete 
08c3cb2073f1: Pull complete 
18f38162c0ce: Pull complete 
10e2168f148a: Pull complete 
c4ffe9532b5f: Pull complete 
Digest: sha256:2275af0f20d71b293916f1958f8497f987b8d8fd8113df54635f2a5915002bf1
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

上記から、nginx イメージが URL docker.io から取得されていることがわかります。

dockerimages コマンドを使用して、現在のオペレーティング システムにダウンロードされたイメージ ファイルを表示します。

# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
nginx         latest    12766a6745ee   33 hours ago   142MB
hello-world   latest    feb5d9fea6a5   6 months ago   13.3kB
  • REPOSITORY イメージ ウェアハウスとイメージ名。イメージ ウェアハウスが表示されない場合、デフォルトは docker.io

  • です。 ##TAG イメージのバージョンまたはマイルストーン ラベル。latest は最新バージョンを表します。

  • IMAGE ID イメージの一意の識別子

  • CREATEDこのイメージが作成された時刻

  • SIZE はイメージ ファイルのサイズを表します

  • ##2. イメージを実行してコンテナを開始します

スルー

docker run

このコマンドは、nginx-zimug というコンテナー名でコンテナーを開始します。 <pre class="brush:bash;"># docker run -d --name nginx-zimug -p 80:80 nginx 81bb1211144bc0991a789f860458548643c60b5459466c14d0604be9a4ccbfd7</pre>

  • -d

    は、コンテナがバックグラウンドで実行されていることを示します

  • --name

    コンテナーの名前を作成します。 Name

  • -p

    Port マッピング、形式は Host port:Container port です。上記の意味は次のとおりです。コンテナ内のポート 80 をマップする ホスト マシンのポート 80 に、外部アクセス サービスを提供します。最後のフィールドはイメージ名です。

  • ブラウザが HTTP プロトコルを通じてホストのポート 80 にアクセスする場合、ポート番号は省略できます。取得されたアクセス結果は以下の通りで、nginxサービスが正常に起動していることがわかります。

dockerを使用してnginxが提供するWebサービスをインストールする方法以下に示すように、

docker ps

を通じて実行中のコンテナを表示できます: <pre class="brush:bash;">CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 81bb1211144b nginx &quot;/docker-entrypoint.…&quot; 11 minutes ago Up 11 minutes 0.0.0.0:80-&gt;80/tcp, :::80-&gt;80/tcp nginx-zimug</pre>3. ファイル マッピング

まず、コンテナ内のファイルの内容を変更できることは明らかですが、

コンテナが再起動されると、コンテナに書き込まれたデータ ファイルと構成ファイルへの変更はすべて失われます

。したがって、コンテナの実行ステータスと実行結果を保存するには、コンテナ内のいくつかの重要なデータ ファイル、ログ ファイル、構成ファイルをホストにマッピングする必要があります。 nginx を例に挙げます。nginx には 3 つの重要なファイル ディレクトリがあります:

Web サイトのページが保存されるディレクトリnginx 設定ファイル ディレクトリ ログ ディレクトリ
コンテナ内のパス コンテナ内で自動的にホスト マッピング パスを定義します。
/usr/share/nginx/html /root/nginx /html
/etc/nginx/nginx.conf /root/nginx/conf/nginx .conf
#/var/log/nginx /root/nginx/logs
ホスト マシンに新しいファイル ディレクトリを作成します

mkdir -p  /root/nginx/logs  /root/nginx/html  /root/nginx/conf;

コンテナ内のファイルをホスト マシンにコピーします

nginx 構成をコピーしますファイルをホスト マシンにコピーします

docker cp nginx-zimug:/etc/nginx/nginx.conf /root/nginx/conf;

シミュレートされた HTML ファイルを HTML ディレクトリに配置します

次のファイルをindex.html として保存し、ホストの /root/ に配置しますnginx/html
ディレクトリ。マッピング関係があるため、実際にはコンテナの /usr/share/nginx/html ディレクトリに配置されます。 <pre class="brush:php;toolbar:false">&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; &lt;title&gt;使用docker搭建nginx web服务&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h2&gt;访问成功&lt;/h2&gt; &lt;p&gt;厉害了!&lt;/p&gt; &lt;/body&gt; &lt;/html&gt;</pre>4. コンテナ サービスを再度開始します

-v

パラメータはホスト ファイルとコンテナ内のファイル間のマッピング関係を表し、形式は # です。 ##-v ホスト ディレクトリ: コンテナ ファイル システム ディレクトリ 。新しいコンテナを開始します。コンテナの名前は nginx-prod

docker run -d -p 80:80 \
--name nginx-prod \
-v /root/nginx/html:/usr/share/nginx/html \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/logs:/var/log/nginx  nginx
です。新しいコンテナを開始する前に、古い nginx-zimug コンテナを削除してください。古いコンテナが削除されていない場合、新しいコンテナのポートが古いコンテナのポートと競合します。次のコマンドを使用してコンテナを削除します。
docker stop nginx-zimug;
docker rm nginx-zimug;

上記の

docker run

コマンドを実行して、新しいコンテナを起動します。起動後、ブラウザからホストのポート80にアクセスすると、以下のような応答結果が得られ、nginxが正常にWebサービスを提供していることがわかります。

同時に、ホスト マシン上の nginx 構成を変更し、ランタイム ログ ファイルを表示できます。ホストとコンテナ内の構成ファイルの間にはマッピング関係があるため、構成ファイルを変更すると、コンテナ内で実行されている nginx サービスに影響します。 dockerを使用してnginxが提供するWebサービスをインストールする方法

以上がdockerを使用してnginxが提供するWebサービスをインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。