Docker を使用して静的 Web サイト アプリケーションを作成する (複数の方法)

Docker を使用して静的 Web サイト アプリケーションを作成する (複数の方法)

静的ウェブサイトをホストできるサーバーは数多くあります。この記事では、nginx、apache、tomcatサーバーを使用して、dockerの静的ウェブサイトアプリケーションの設定を説明します。

まず、dockerファイルを作成します。

異なるサーバーの Docker ファイルは異なります。以下は、nginx、apache、および tomcat サーバーの Docker ファイルです。実際、主な違いはプロジェクト ファイル ディレクトリの FROM タグです。

ディレクトリ構造:

1. nginx用のDockerファイル

nginxから
コピー ./www /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html/RUN chown -R daemon:daemon * && chmod -R 755 *
エクスポーズ80

2. Apacheのdockerファイル

httpdから
コピー ./www/ /usr/local/apache2/htdocs/
WORKDIR /usr/local/apache2/htdocs/RUN chown -R daemon:daemon * && chmod -R 755 *
エクスポーズ80

3. tomcatのDockerファイル

tomcatから
コピー ./www/ /usr/local/tomcat/webapps/ROOT/webapp
WORKDIR /usr/local/tomcat/webapps/ROOT/webapp #プロジェクトディレクトリに切り替えます RUN chown -R daemon:daemon * && chmod -R 755 * #権限を設定します

ここでは、webapp という名前のプロジェクトを作成します。アクセスするときは、URL アドレスの後に /webapp を追加します。また、Tomcat のデフォルト ポートは 8080 であることに注意してください。

3 つのファイルは、さまざまな環境に Web サイトを展開するために使用されます。状況に応じて権限を設定することもできます。

次にプロジェクトを構築する

 docker build -t imageName 。(末尾のドットに注意してください。パブリック ライブラリへのプッシュを容易にするには、imageName が「ハブ アカウント名/プロジェクト名」である場合が最適です)

以下はビルドプロセスを示しています

3. パブリックウェアハウスにプッシュする

まずdocker loginを実行する必要があります

docker push ejiyuan/webapp

4番目に、プロジェクトをサーバーにプルします

まずdocker loginを実行する必要があります

docker pull ejiyuan/webapp

docker imagesを実行してイメージが存在するかどうかを確認します

5. プロジェクトの実行

docker run -d -p 8081:80 ejiyuan/webapp

VI. 検証

起動時に指定されたホストIPアドレスとポート番号8081に直接アクセスするか、curlを使用します。

カール http://192.168.99.100:8081

7. 質問

ここでは nginx を例に挙げます。プロジェクトのデフォルト ページが index.html でない場合は、401 または次のページが表示されます。

主な理由は、デフォルトページが指定されていないことです。次のコマンドを使用してイメージにログインします

docker exec -it コンテナID /bin/bash

containerIdはdocker psで取得でき、/etc/nginx/conf.d/default.cnfを修正し、コンテナ内にvimやviがない場合は、以下の2つのコマンドでインストールする

適切なアップデート
apt をインストール

またはsedコマンドを使用する

sed -i '10c index default.html;' /etc/nginx/conf.d/default.conf

変更には再ロードが必要です

nginx -t # 設定ファイルが正しいか確認する service nginx reload # 設定ファイルを新しく読み込む

サービスが存在しない場合は、 exitを使用してコンテナを終了し、 docker restart containerIdを使用してコンテナを再起動します。

8. コントラスト

docker イメージを実行して、結果を自分で確認してください。Nginx が最も小さく、Apache が 2 番目、tomcat が最も大きくなります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerコンテナでの静的ウェブサイトレイアウトの実装

<<:  Vue3.0 ルーティング自動インポート方法の例

>>:  mysql5.7.17.msi インストール グラフィック チュートリアル

推薦する

MySQLのnull値に関する小さな問題

今日、null 値をテストしていたところ、小さな問題が見つかりました。ここに記録しました。以前にも遭...

Win10にMySQL8圧縮パッケージ版をインストールするチュートリアル

1 公式サイトからMySQL8をダウンロードしてインストールするMySQL8 ダウンロードアドレスこ...

MySQLの起動失敗の解決策

MySQLの起動失敗の解決策MySQLを起動できませんmysqlを停止した後、いくつかの操作(ホスト...

ユーザー中心設計

最近、デジタル デザイン コミュニティで「誰が何を担当するのか」という明らかな混乱についてよく質問さ...

MySQL スローログ実践のまとめ

遅いログクエリ機能スロー ログ クエリの主な機能は、設定された時間しきい値を超える SQL ステート...

JavaScript 遅延読み込みの詳細な説明

目次遅延読み込みCSS スタイル: HTML部分:スクリプト部分:要約する遅延読み込み名前の通り、私...

nginxリバースプロキシのyum設定の詳細な手順

パート0 背景社内のイントラネットサーバーは直接インターネットにアクセスすることはできませんが、外部...

Vue の vue.$set() メソッドのソースコード例の詳細な説明

Vue を使用してプロジェクトを開発する過程で、次のような問題によく遭遇します。Vue のデータでオ...

Vueにおけるキーの役割と原理の詳細な説明

目次1. 結論から始めましょう2. キーの役割2.1 例2.2 上記の例を修正する2.3 例を再度修...

MySQL DDL による同期遅延を解決する方法

目次序文解決ツールの紹介仕組み使用制限使用上の注意使用例いくつかのパラメータの説明出力例Tencen...

Centos6.5 でのスーパーバイザーのアップグレード、インストール、および構成に関するチュートリアル

スーパーバイザー紹介Supervisor は、Python で開発されたクライアント/サーバー サー...

CSS3プロパティline-clampはテキスト行の使用を制御します

説明: ブロック要素に表示されるテキストの行数を制限します。 -webkit-line-clamp ...

Vue の高度な使用方法チュートリアル 動的コンポーネント

目次基本的な説明AST 解析レンダリング機能通常コンポーネントと動的コンポーネントの比較ファクトリ関...

mysql 10進データ型変換の実装

最近、次のデータ型のデータベースに遭遇しました:decimal(14,4)発生した問題は次のとおりで...

モバイルデバイスで 1 ピクセルの境界線の問題を解決するいくつかの方法 (5 つの方法)

この記事では、モバイルデバイス上の 1 ピクセルの境界線の問題を解決する 5 つの方法を紹介します。...