動作環境: Docker バージョン: 1. Nginxサーバーを起動する Nginxサーバーを起動し、シミュレートされたターミナルに入ります docker run -p 8080:80 --name nginx_web -it nginx /bin/bash 2. Nginxイメージ設定ファイルの場所を理解する ログファイルの場所: /var/log/nginx 設定ファイルの場所: /etc/nginx リソースの保存場所: /usr/share/nginx/html 上記の設定パスは私のコンピュータ上の仮想 Linux のアドレスです。ご自身の設定場所をご確認ください。 3. Nginxのデフォルトのホームページを変更し、実行できるかテストする 重要なヒント: 面倒なことはしたくない場合は、ステップ4から直接実行できます。 nginx の共有フォルダ echo "<h1>Hello Docker</h1>" > index.html ここを訪れた友人の中には、localhost:8080 ポートにアクセスすると、Nginx のウェルカム インターフェイスが最初に表示され、2 回目に 404 プロンプトが表示されることに気付く人もいるかもしれません。 この記事ではこの問題について詳しく説明しません。理解できない場合は、以下を参照してください。 Docker は docker run を実行した後、まず現在のオペレーティング システムに基づいて Linux の簡略化されたバージョン (システム操作の最も簡略化された機能のみを含む) を仮想化し、次に Nginx イメージを読み込みます。 Nginx イメージが仮想 Linux 環境にロードされると、システム内でスクリプトを実行するのと同じになり、このスクリプトが Nginx です。 デフォルトの Nginx はデーモン プロセスとして実行されないためです。したがって、Docker はポート 80 でリクエストをリッスンすると、完了後に Nginx プロセスを終了します。コンテナ内にはプロセスが 1 つだけ存在し、非デーモン プロセスです。リクエスト プロセスの実行後に破棄されます。そうすると、このコンテナが存在する必要がなくなるため、Docker 内のこのサービスは停止されます。これが、docker top を実行したときに現在実行中のコンテナが表示されない理由です。 Nginx が一度だけ実行された後に終了する問題の一時的な解決策として、対話型ターミナルに入り、nginx & を実行して、nginx をバックグラウンドでデーモン プロセスとして実行することができます。 稼働中のコンテナを見る roverliang$ docker ps コンテナID イメージ コマンド 作成ステータス ポート名 何もない場合は、実行中のコンテナがないことを意味します。 実行が終了したコンテナを表示する roverliang$ docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 5bff285f60b3 nginx "/bin/bash" 9 分前 終了 (0) 6 分前 nginx_web 起動したコンテナを再起動します docker で nginx_web を起動します コンテナに入る docker アタッチ nginx_web echo "<h1>Hello Docker</h1>" > /usr/share/nginx/html/index.html nginx & 次に、ショートカットキーのControl + Qを使用して現在のコンテナを終了します。 次にブラウザで再度アクセスします: http://localhost:8080/ 大変な苦労の末、ようやく期待通りのコンテンツが見つかりました。
4. 以前のNginxデモをプレイ可能なデモにする まず、ローカルマシンにマップする必要があるフォルダを作成します mkdir -p docker_study/log docker_study/etc docker_study/html 注: ホームディレクトリに作成してください nginxの設定ファイルをdockerにコピーします docker cp 65bc23f952db:/etc/nginx/ /Users/roverliang/docker_study/etc/ コンテナを閉じる docker を停止します。 練習用のデモを削除し、最初から使えるデモを構築します。 docker rm nginx_web ファイルの変更を容易にするために、Nginxイメージをローカルディレクトリにマップします。 docker 実行 \ -p 8080:80 \ --name nginx_web \ -v /Users/roverliang/docker_study/log/:/var/log/nginx \ -v /Users/roverliang/docker_study/etc/nginx.conf:/etc/nginx/nginx.conf \ -v /Users/roverliang/docker_study/html/:/usr/share/nginx/html \ -それ \ -d \ nginx \ /bin/bash \ この時点では、http://localhost:8080/ にアクセスしてもコンテンツが見つからない場合があります。しかし、心配しないでください。問題を解決するプロセスは、新しいことを学ぶプロセスです。オンラインで情報を検索し続け、以下を参照してください。 Dockerはnginxを実行する 以下は、私が突然啓蒙された記事の一節です。 以前実行したときは、通常、対話モードを使用しました。-i でコンテナの stdin がオンになっていることを確認し、-t でコンテナの tty ターミナルを生成し、コマンドの最後に /bin/bash を追加して対話を確実に行えるようにしました。しかし実際には、nginx は実行されていなかったため、コンテナのポート バインディングが永続的ではなかったと考えられます。 次に、コンテナをシャットダウンして削除し、次のコマンドで再起動する必要があります。 docker 実行 \ -p 8080:80 \ --name nginx_web \ -v /Users/roverliang/docker_study/log/:/var/log/nginx \ -v /Users/roverliang/docker_study/etc/nginx.conf:/etc/nginx/nginx.conf \ -v /Users/roverliang/docker_study/html/:/usr/share/nginx/html \ -d \ nginx 5. Nginxの設定を変更してウェブサイトを解析する 先ほどコピーしたnginxの設定を修正する cd /Users/roverliang/docker_study/etc vim nginx.conf Http モジュールに次の構成を追加します。 サーバ { 聞く 80; サーバー名 www.test_nginx.com; インデックス index.html; ルート /usr/share/nginx/html; } 次にホストに戻り、ホスト 127.0.0.1 www.test_nginx.com をバインドします。 完了です! 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Windows 10 と MySQL 5.5 のインストールとインストールなしの使用の詳細なチュートリアル (画像とテキスト)
カーソル選択クエリによって返される行のセットは、結果セットと呼ばれます。結果セット内の行は、入力した...
導入された HTML タグは、必ずしも XHTML 仕様に完全に準拠しているわけではありません。実際...
以前はMySQLをあまり使用していなかったため、MySQLの機能にあまり詳しくありませんでした。この...
私たち謙虚なプログラマーは、今でもこう歌わなければなりません。「あなたも私も、この世に生まれて、一日...
私はしばらくの間チャートをいじっていましたが、好奇心から、CSS を使用してチャートを作成するより良...
1. 文法 場所 [=|~|~*|^~|@] /uri/ { ... } 2. 説明上記の構文から、...
MySQL データベースが Centos7 システムにインストールされており、オペレーティング シス...
目次序文知る練習すれば完璧になる序文wabpack では、ローダーの他にプラグインがコア機能です。プ...
コードをコピーコードは次のとおりです。 <iframe src="1.htm&quo...
重複キーの置換と挿入の違い置換の使用法競合がない場合、挿入と同等となり、他の列のデフォルト値が使用さ...
私はフロントエンド プロジェクトの開発に常に vscode を使用してきたため、現在ではいくつかの小...
序文ご存知のとおり、Linux ではハードディスクやグラフィック カードなどすべてがファイルです。 ...
主な違い: 1. タイプSQL データベースは主にリレーショナル データベース (RDBMS) とし...
アプリケーションや Web サイトのパフォーマンスが成功の重要な要素であることは誰もが知っています。...
序文この記事では主に、MySQL で大規模なデータ テーブルのコピーの効率を向上させることに関する関...