Docker で Tomcat を使用して Web アプリケーションを迅速にデプロイする方法の例

Docker で Tomcat を使用して Web アプリケーションを迅速にデプロイする方法の例

Docker の基本的な操作を学習した後、コンテナにいくつかの基本的なアプリケーションをデプロイしてみます。

この記事では、Docker で Web アプリケーションをすばやくデプロイする方法について説明します。

まず、マシンに Docker をインストールする必要があります。インストールされていない場合は、yum install -y docker コマンドを使用してインストールします。

yum インストール -y docker

Web アプリケーションをデプロイするので、Tomcat は当然不可欠なので、まず Tomcat イメージを取得する必要があります。コマンドは以下のとおりです

docker プル tomcat

この画像は少し大きいので、時間を節約するために事前に取得しておくことができます。

次にTomcatイメージを使ってコンテナを起動します

docker run -it --name webdemo -p 80:8080 tomcat /bin/bash

ここでは、webdemo という名前の対話型コンテナーを起動します。-p 80:8080 は、コンテナーのポート 8080 をホストのポート 80 にマッピングすることを意味します。このようにして、ホストのポート 80 にアクセスすることでコンテナー サービスにアクセスできます。


コンテナが作成されたら、コンテナに入り、内部のファイル構造を確認します。そこに webapps ファイルがあります。Web アプリケーションを war パッケージの形式で保存し、このファイルにコピーするだけです。 Tomcat が自動的に war パッケージを解凍してデプロイするからです。

ホストからコンテナにファイルをコピーするにはどうすればいいですか?

以前のターミナルはコンテナ内にあったため、ここで 2 番目のターミナルを開いて操作しました。私はwarパッケージファイルを/mnt/ディレクトリに置きました


ホストからコンテナにコピーするsudo docker cp host_path containerID:container_path

コンテナからホストにコピーするsudo docker cp containerID:container_path host_path

ここで使用するコマンドは次のとおりです。

ドッカーcp /mnt/webdemo.war a2f2091a661fa51e02c0be54f252fc46fc604932526b17038ccc267affcef12c:/usr/local/tomcat/webapps

長い文字列はコンテナ ID です。自分で確認してください。 後ろのパスはコンテナの内部パスです。本当に理解できない場合は、コピーすることができます。ここで注意してください:コロンの後にはスペースがありません。コロンの前にスペースがあったのでコピーできませんでした。

次のステップはTomcatを起動することです。

war パッケージがコンテナにインポートされました。これで、最初のターミナルに移動して確認できます。


war パッケージがインポートされたことがわかります。ただし、この時点では Tomcat サービスが開始されていません。Tomcat サービスを開始し、Tomcat を利用して war パッケージを解凍してデプロイできるようにしましょう。


ここで、bin ディレクトリに移動し、ディレクトリ内の catalina.sh ファイルを実行して、Tomcat が実行され、Tomcat がフロントエンドで実行されるようにします。そのために、2 番目のターミナルを開きました。

最後に、ブラウザで効果を確認できます。


このページはデモンストレーション用ですので、他の小さなアプリケーションをお持ちの場合はぜひお試しください。

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

以下もご興味があるかもしれません:
  • Tomcat および Web アプリケーションの Docker デプロイメントの実装
  • tomcatのDocker自動デプロイの詳しい説明
  • Docker で Tomcat および Java アプリケーションをデプロイする詳細な手順
  • dockerを使用してTomcatをデプロイし、Skywalkingに接続する

<<:  Vue+canvas は、ウォーターフォール チャートを上から下までリアルタイムに更新する効果を実現します (QT と同様)

>>:  MySQL マスタースレーブレプリケーションプロセスの詳細な説明

ブログ    

推薦する

ブラウザは関連するHTTPヘッダーをキャッシュし、HTTPリクエストの数を最小限に抑えます。

最近、Yahoo の 34 の黄金律を読み、ウェブサイトのパフォーマンスを最適化する方法を学びました...

VueはSplitを使用して、ユニバーサルドラッグアンドスライドパーティションパネルコンポーネントをカプセル化します。

目次序文始める基本レイアウトデータバインディングイベントバインディング最適化ジッター問題を最適化する...

KTLツールはMySQLからMySQLへのデータの同期方法を実現します

ktl ツールを使用して、mysql から mysql にデータを同期します。 1. 新しいジョブス...

Ubuntu 18.04 Linux システムに JDK と Mysql をインストールする方法

プラットフォームの展開1. JDKをインストールするステップ1. OracleJDKをダウンロードす...

CSS3 アドバンス LESS で星空アニメーションを実装するサンプルコード

この記事では、星空アニメーションを実現するための高度な CSS3 LESS のサンプルコードを次のよ...

Windows Server 2019 のインストール (グラフィカル チュートリアル)

Windows Server 2019 は、Microsoft が公式にリリースした最新のサーバー...

Nginxでネットワーク分離を解決した実践記録を詳しく解説

必要最近、Node オンライン サービスを移行する必要があったため、2 つの新しいオンライン サーバ...

HTML テーブル セルの幅と高さを設定する方法

Web ページを作成するときに、テーブルの幅が揃っていないという問題に遭遇することがよくあります。 ...

vue3.0 プロジェクトを素早く構築するための手順を完了する

目次1. 3.0をより適切にサポートするには、vue/cliのバージョンが4.5.0以上であることを...

MySQL における悲観的ロックと楽観的ロック

リレーショナル データベースでは、悲観的ロックと楽観的ロックがリソース同時実行シナリオのソリューショ...

MySQL 5.7 をバイナリモードでインストールし、Linux でシステムを最適化する手順

この記事では主に、MySQL バイナリ パッケージのインストール/起動/シャットダウンのプロセスを紹...

MySQL は、あるテーブルのデータに基づいて別のテーブルの特定のフィールドを更新します (SQL ステートメント)

次のコードは、MySQL が 1 つのテーブルのデータに基づいて別のテーブルのいくつかのフィールドを...

単一の MySQL テーブル内の行数が 500 万を超えてはいけないのはなぜですか?

今日は、興味深いトピックについてお話ししましょう。データベースとテーブルを分割することを検討する前に...

Excel ファイルを MySQL データベースにインポートする方法

この記事では、ExcelファイルをMySQLデータベースにインポートする方法を参考までに紹介します。...

Vue ドラッグ アンド ドロップのシンプルな実装

この記事では、主に次のような Vue ドラッグ アンド ドロップの簡単な実装を紹介します。レンダリン...