[dockerシリーズ]dockerを使用してnginxをインストールし、Webサービスを提供します

ここに画像の説明を挿入


一般に、テクノロジーを学ぶために、最初に最も簡単な例または最も一般的な例を使用して紹介コンテンツを説明します。そのため、この記事では、dockerを使用してnginxコンテナーサービスをインストールする方法を紹介します。 この記事では、基本的な使用法の観点から、Dockerのほぼコアコンテンツであるイメージプル、コンテナ操作、ポートマッピング、ファイルマッピングについて説明します 。基本的ですが、非常に重要であるため、初心者は注意深く読む必要があります。

まず、ミラーを引っ張る

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

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

コマンドを使用docker imagesして、現在のオペレーティングシステムにダウンロードされているイメージファイルを確認します。

# 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は最新バージョンを表します
  • IMAGEID画像の一意のID
  • この画像が作成されたときに作成されました
  • SIZEは、画像ファイルのサイズを示します

2.イメージを実行してコンテナを起動します

コマンドを使用してコンテナーを開始しdocker runます。コンテナー名はnginx-zimugです。

# docker run -d --name nginx-zimug -p  80:80  nginx
81bb1211144bc0991a789f860458548643c60b5459466c14d0604be9a4ccbfd7
  • -dコンテナがバックグラウンドで実行されていることを示します
  • --nameコンテナに名前を付けます
  • -pポートマッピング、形式はです宿主机端口:容器端口。上記の意味は、コンテナ内のポート80をホストのポート80にマッピングし、外部アクセスサービスを提供することです。
  • 最後のフィールドは画像名です

ブラウザのHTTPプロトコルはホストのポート80にアクセスします。ポート80の場合は、省略できます。得られたアクセス結果は以下のとおりであり、nginxサービスが正常に開始されたことを示しています。

docker ps実行中のコンテナは次のように表示できます。

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                               NAMES
81bb1211144b   nginx     "/docker-entrypoint.…"   11 minutes ago   Up 11 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   nginx-zimug

3.ファイルマッピング

まず、コンテナ内のファイルの内容を変更できることは明らかですが、コンテナを再起動すると、コンテナに書き込まれたデータファイルと構成ファイルへのすべての変更が失われます。したがって、コンテナーの実行状態と実行結果を保存するには、コンテナー内のいくつかの重要なデータファイル、ログファイル、および構成ファイルをホストにマップする必要があります。
nginxを例にとると、nginxには3つの重要なファイルディレクトリがあります。

コンテナ内のパス ホストのカスタムマッピングパス
Webサイトページが保存されているディレクトリ / usr / share / nginx / html / root / nginx / html
nginx構成ファイルディレクトリ /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はコンテナのディレクトリにも配置されます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>使用docker搭建nginx web服务</title>
</head>
<body>
    <h1>访问成功</h1>
    <p>厉害了!</p>
</body>
</html>

第四に、コンテナサービスを再開します

-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サービスの操作に影響します。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/hanxiaotongtong/article/details/123888685