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
このコマンドは、nginx-zimug というコンテナー名でコンテナーを開始します。 <pre class="brush:bash;"># docker run -d --name nginx-zimug -p 80:80 nginx
81bb1211144bc0991a789f860458548643c60b5459466c14d0604be9a4ccbfd7</pre>
は、コンテナがバックグラウンドで実行されていることを示します
コンテナーの名前を作成します。 Name
Port マッピング、形式は Host port:Container port
です。上記の意味は次のとおりです。コンテナ内のポート 80 をマップする ホスト マシンのポート 80 に、外部アクセス サービスを提供します。最後のフィールドはイメージ名です。
以下に示すように、
docker ps を通じて実行中のコンテナを表示できます: <pre class="brush:bash;">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</pre>
3. ファイル マッピング
。したがって、コンテナの実行ステータスと実行結果を保存するには、コンテナ内のいくつかの重要なデータ ファイル、ログ ファイル、構成ファイルをホストにマッピングする必要があります。 nginx を例に挙げます。nginx には 3 つの重要なファイル ディレクトリがあります:
コンテナ内のパス | コンテナ内で自動的にホスト マッピング パスを定義します。 | |
---|---|---|
/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;
次のファイルをindex.html として保存し、ホストの /root/ に配置しますnginx/html
ディレクトリ。マッピング関係があるため、実際にはコンテナの /usr/share/nginx/html
ディレクトリに配置されます。 <pre class="brush:php;toolbar:false"><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>使用docker搭建nginx web服务</title>
</head>
<body>
<h2>访问成功</h2>
<p>厉害了!</p>
</body>
</html></pre>
4. コンテナ サービスを再度開始します
パラメータはホスト ファイルとコンテナ内のファイル間のマッピング関係を表し、形式は # です。 ##-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サービスをインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。