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 5.7.17 winx64.zip インストールと設定方法のグラフィックチュートリアル

はじめに: Windows 10 を再インストールし、同時にファイルを整理しました。しかし、MySQ...

Vueのprops設定の詳細な説明

<テンプレート> <div class="demo">...

MySQL 自動インクリメント ID のオーバーサイズ問題のトラブルシューティングと解決策

導入Xiao A がコードを書いていたところ、DBA Xiao B が突然、「急いでユーザー固有情報...

WEB 標準ウェブページ構造

背景画像でも、ページ上のテキストサイズでも、1 ピクセルの違いは非常に明白です。そして、私は学生時代...

Docker Swarm サービス オーケストレーション コマンドの詳細な説明

1. はじめにDocker には、タスクを構成する複数の Docker コンテナをオーケストレーショ...

Vue でルートをジャンプする方法をご存知ですか?

目次最初の方法: router-link (宣言型ルーティング) 2番目の方法: router.pu...

リクエスト IP の最後のセグメントに基づいてトラフィックを分割するように Nginx を構成する方法

これは主に、場所パラメータのif判断の設定ジャンプです。迂回により、サーバーの負荷と圧力を軽減できま...

WeChatミニプログラムでトークンの有効期限を処理する方法

目次まず結論から質問解決Promiseを使用してコールバック関数をカプセル化する要約するまず結論から...

MySQLはランダムに一定数のレコードを抽出します

以前は、このような使用シナリオを処理するために rand() で直接 order していましたが、効...

Mysql 日付クエリの詳細な紹介

現在の日付を照会する CURRENT_DATE() を選択します。 CURDATE() を選択する;...

MySQL データベース シェル import_table データ インポート

目次MySQL Shell import_table データのインポート1. import_tabl...

MySQLでよく使われる文字列関数トップ10の詳細な説明

こんにちは、みんな!技術の話ばかりで髪は切らないトニーです。データベース関数は、何らかの機能を持ち、...

重要なmysqlログファイルの概要

著者: 丁易出典: https://chengxuzhixin.com/blog/post/mysq...

ウェブページでグレーまたはブラックモードを実現するための CSS3 フィルターコード

フロントエンドcss3 フィルターは、Web ページのグレー効果を実現できるだけでなく、ナイト モー...

ElementUIはドロップダウンオプションと複数選択ボックスのサンプルコードを実装します

目次ドロップダウン複数選択ボックスアップグレード - すべてのオプションを追加改訂と改善を求める製品...