動作環境: 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 のインストールとインストールなしの使用の詳細なチュートリアル (画像とテキスト)
1. inodeの紹介inode を理解するには、まずファイル ストレージから始める必要があります。...
反復/egrep構文: grep [-cinvABC] 'word' ファイル名-c...
インターネットには、真実のように見える「噂」がたくさんあります。もちろん、悪意のあるものではありませ...
効果: コード: <テンプレート> <div class="back-t...
5月の最も重要なインタラクティブデザイン記事!今年、Baiduのデザイナーは体験の観点から出発し、大...
ロゴの最適化: 1.ロゴ画像はできるだけ小さくしてください。 2. 一般的には背景として配置されます...
序文開発プロセスでは、すべてのデータではなく特定の期間内のデータをクエリするなど、クエリのフィルタリ...
Ansible を使用する学生は、以下に示すように、Ansible が特定のフォルダーまたはファイル...
はい、CSS にも正規表現があります (アーメン) CSS で目立つための 2 つの強力なツール: ...
概要: MySQL JDBC 抽出にはどのような方法を使用すればよいでしょうか? その方法を説明しま...
コードを書くとき、2 つのファイル間の違い、または同じファイルの異なるバージョン間の違いを知る必要が...
Jenkins+Tomcatサーバーの設定中に、Tomcat設定ファイルが変更され、サーバーのTom...
デザイナーは世界で最も繊細で感情的な人々だと私はいつも感じています。私がこう言うときに優越感を感じる...
<br />長年の専門的なアートデザイン教育を通じて「美とは何か」を学びましたが、「美を...
シナリオmyBuket の static/material/ ディレクトリなど、Alibaba Cl...