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 マスタースレーブレプリケーションプロセスの詳細な説明

推薦する

MySQLのデッドロックとログに関する詳細な説明

最近、MySQL オンラインでいくつかのデータ異常が発生しましたが、すべて早朝に発生しました。ビジネ...

JSはキャンバス技術を使用してeChartsの棒グラフを模倣します

Canvas は HTML5 の新しいタグです。js を使用して Canvas 描画 API を操作...

アイデアを war パッケージにパッケージ化し、tomcat にデプロイしてアクセス パスの問題 (図とテキスト)

Web プロジェクトを war にパッケージ化するアイデアにとって最も重要なことは、アトリフィカを...

Vue モバイル プロジェクトでページ キャッシュを実装する方法のサンプル コード

背景モバイル デバイスでは、ページ ジャンプ間のキャッシュが必須要件です。例: ホームページ =&g...

MySQLクエリのパフォーマンスを分析する方法

目次スロークエリの基礎: データ取得の最適化データベースから不要なデータが要求されていないか確認する...

イメージの起動時にdocker runまたはdocker restartが自動的に終了する問題を解決します

コマンドを実行します: docker run --name centos8 -d centos /b...

フロントエンドのパフォーマンス最適化 - フロントエンドエンジニアが話し合うべき問題点

はじめに<br />前回の記事「私の CSS アーキテクチャ コンセプト」では、公園で友...

HTML初心者や初級者向けの提案。専門家は無視してかまいません。

感想:私はバックエンド開発者です。静的 (HTML) ページを取得すると、ページ構造と命名規則が極端...

Linux システムの .bash_profile ファイルの詳細な説明

目次1. 環境変数$PATH: 2. 環境変数を変更します。 3. bash_profileの目的要...

Mac MySQL のルートパスワードをリセットするチュートリアル

免責事項:このパスワード リセット方法は、Homebrew によってインストールされた MySQL ...

NavicatがLinuxサーバー上のMySQLに接続できない問題を解決する

最初は悲しい気持ちになりました。スクリーンショットは以下の通りです。 少し苦労しましたが、解決策は次...

JavaScript でネットワーク速度をテストする方法

目次序文ネットワーク速度のフロントエンド判定原理のまとめ1. img を読み込むか Ajax リクエ...

ナビゲーションバーのドロップダウンメニューのサンプルコードを実装するためのHTML+CSS

効果コード内の画像は自分で変更できますドロップダウンメニューのHTMLコード <ヘッダークラ​...

DCL を使用して MySQL でユーザーを管理し、権限を制御する方法

DCL (データ制御言語): データベースのアクセス権とセキュリティ レベルを定義し、ユーザーを作成...

Linux インストール Apache サーバー構成プロセス

袋を用意するインストールApacheがすでにインストールされているかどうかを確認するrpm -qa ...