DockerでJavaプログラムを起動する方法

DockerでJavaプログラムを起動する方法

シンプルなSpring Boot Webプロジェクトを作成する

アイデア ツールを使用して、Spring Boot Web プロジェクトを作成します。これはテストなので、[次へ] をクリックします。




アクセス用のテスト API を記述します。サービス ポート番号を変更する必要はありません。ローカルでは 8701 に変更しました。

プログラムを起動すると、プログラムがデフォルトのポート 8080 ではないことがわかります。次の URL にアクセスしてください: http://localhost:8701/v1/hello


上記のシンプルな Web プロジェクトが構築されました。次に、このデモ プロジェクトを docker 経由で実行してみましょう。

最初のステップは Docker をインストールすることです (詳細な手順はここでは説明しません)。

2 番目のステップでは、Java 環境を備えた Docker イメージが必要です。私はNetEase Cloud Mirror Center(アドレス:https://c.163yun.com/hub#/library/repository/info?repoId=65430)からダウンロードしました。Alibaba Cloudやその他のプラットフォームからJava環境に対応するイメージを見つけて作成することもできます。

イメージを取得してローカルにプルする

docker pull hub.c.163.com/housan993/centos7_jdk8:最新

3 番目のステップでは、デモ プロジェクトを jar パッケージにパッケージ化し、mvn install を使用します。便宜上、生成された jar をターゲットからプロジェクトのルート ディレクトリに直接取得します。

4 番目のステップでは、プロジェクトの下に Dockerfile ファイルを作成し、デモ プロジェクトのミラーを作成します。
Baiduのdockerfileファイル内のコマンドを実行する

Dockerfile ファイルの内容:
hub.c.163.com/housan993/centos7_jdk8:latest より
demo-0.0.1-SNAPSHOT.jar をコピー /
CMD java -jar デモ-0.0.1-SNAPSHOT.jar

Dockerfile ファイルを書き込んだ後、Docker コマンドを使用してイメージを構築します。 dockerコマンドは、現在のディレクトリ(デフォルトのファイル名はDockerfile)でDockerfileファイルを自動的に見つけ、ディレクトリパスを指定します。「.」は現在のディレクトリを示します。

デモイメージをビルドします。

次のログが表示されれば、イメージは正常に作成されています。

5 番目のステップでは、作成されたイメージに従ってプログラムのコンテナーを起動し、ポート (8701) をローカル マシンの 8701 にマップします。

docker run -d -p 8701:8701 デモイメージ

実行すると、コンテナの CONTAINER ID である長い文字列が取得されます。 docker psで確認してみましょう

コンテナの起動ログを見て、Java プログラムが実行されているかどうかを確認しましょう。

docker ログ [コンテナ ID] 

コンテナのログを見ると、ローカルで Java プログラムを起動したときのログと全く同じであることがわかったので、マップされたポートからデモ プログラムにアクセスして動作するか確認してみます。

デモ コンテナを停止して、まだアクセスできるかどうかを確認しましょう。
コンテナを停止するコマンド: docker stop [コンテナ ID]
アクセスできません。 。 。

デモコンテナをもう一度起動してみましょう
docker start [コンテナID]
再びアクセス可能になりました。ここまでで、Docker を介して Java プログラムを実行する簡単な使用方法が完了しました。

上記は、Docker を使用して Java プログラムを実行する単純な例です。将来的には、コマンドをパッケージ化してビルドし、その他のコマンドをシェル スクリプトに組み込み、コンテナー バージョンを自動的に生成し、パラメーター変数の値を動的に取得できるようになります。コンテナの話はとても楽しいですし、将来的に自分のプロジェクトを自動で展開するのにとても便利になるでしょう。k8s コンテナ オーケストレーション ツールも後ほど紹介しますが、これはさらに興味深いものになるでしょう。

これで、docker で Java プログラムを起動する手順に関するこの記事は終了です。docker で Java プログラムを起動する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerを使用してシンプルなJava開発およびコンパイル環境を構築する方法の詳細な説明
  • Docker で Java 8 Spring Boot アプリケーションを開発する方法
  • Dockerを使用してJava環境を構築する手順
  • Javaデータ開発補助ツールDockerと一般プログラムの使い方

<<:  Vue+Openlayer をベースに geojson を動的に読み込む方法

>>:  MySQL コード実行構造例の分析 [シーケンス、分岐、ループ構造]

推薦する

VMware12.0 インストール Ubuntu14.04 LTS チュートリアル

私は、デスクトップ バージョンとサーバー バージョンの両方で、仮想マシンにさまざまなイメージを何度も...

Linux での MySQL のインストールに関する詳細なチュートリアル

1. MySQLサービスをシャットダウンする# service mysqld stop 2. rpm...

Linux での MySQL 5.6.24 (バ​​イナリ) 自動インストール スクリプト

この記事では、Linux環境でのmysql5.6.24自動インストールスクリプトコードを参考までに共...

HTML ウェブページでのアンカー(名前付きアンカー)の使用の概要

以下の情報はインターネットから収集したものです1. アンカーは、Web ページ作成におけるハイパーリ...

Vue プロジェクトでよく使用されるツール機能の概要

目次序文1. カスタムフォーカスコマンド1. 方法1 2. 方法2 3. 方法3 2. 入力ボックス...

デザインスキルを向上させる良い方法

いわゆる才能(左脳と右脳)つまり、芸術的な才能があるかどうかは、人間の左脳と右脳の分業によって主に決...

MySQL開発標準と使用スキルの概要

1. 命名規則1. データベース名、テーブル名、フィールド名には小文字を使用し、アンダースコアで区切...

JSプロトタイプとプロトタイプチェーンについての簡単な説明

目次1. プロトタイプ2. プロトタイプポインタ: __proto__要約する1. プロトタイプJa...

意外と知らないLinuxのSSHコマンドの使い方7選を徹底解説

システム管理者は複数のサーバーを同時に管理する場合があり、これらのサーバーは異なる場所に配置されてい...

MySQLクエリ文の実行プロセスの詳細な説明

目次1. クライアントとサーバー間の通信方法2. クエリキャッシュ3. クエリ最適化処理4. クエリ...

CSS3は赤い封筒を振る効果を実現します

赤い封筒の揺れ効果を実現するには要件があります。これまでやったことがないので、記録しておきます。ヘヘ...

ユーザー エクスペリエンス デザイナーとは誰ですか?

怖いですね! 写真の翻訳: (内側から外側へ)最初のレイヤー:ユーザーエクスペリエンス第2層:コンテ...

Vue+flaskで動画合成機能を実現(ドラッグ&ドロップアップロード)

目次ドラッグアンドドロップアップロードについては以前の記事で書きました。ファイルをアップロードするF...

基本的なウェブページパフォーマンス最適化ルールの簡単な概要

ブラウザのウェブページを最適化するためのいくつかのルールページの最適化静的リソース圧縮ビルド ツール...

Alibaba Cloud Server に MySQL データベースをインストールする詳細なチュートリアル

目次序文1. MySQLをアンインストールする2. MySQLをインストールする要約する序文学習中に...