序文プロジェクトをデプロイするときに、node.js、Redis、RabbitMQ、MySQL などに依存する必要がある場合があります。これらのサービスのデプロイに必要な関数ライブラリと依存関係は異なり、互いに競合する可能性もあります。これにより、展開に大きな困難が生じました。 Docker はこれらの問題を巧みに解決しました。依存関係の互換性の問題を解決するために、Docker は次の 2 つの方法を使用します。
この記事では、通常 SpringBoot を使用して開発するプロジェクトを Docker を使用してデプロイする方法について説明します。 DockerファイルDockerfile とは何ですか?Dockerfile は、イメージをビルドするために使用されるテキスト ファイルです。テキスト コンテンツには、イメージをビルドするために必要な手順と指示が含まれています。 Dockerfile 構文カスタム イメージを構築するときに、各ファイルを 1 つずつコピーしてパッケージ化する必要はありません。 Docker に伝える必要があるのは、イメージの構成、必要な BaseImage、コピーする必要があるファイル、インストールする必要がある依存関係、および起動スクリプトだけです。将来的には、Docker がイメージの構築を支援してくれるでしょう。 上記の情報を記述したファイルがDockerfileファイルです。 Dockerfile は、イメージを構築するために実行する操作を記述した命令が含まれるテキスト ファイルです。各命令はレイヤーを形成します。 SpringBoot プロジェクトのパッケージ化準備プロジェクト: プロジェクトポート サーバーポート=8080 テンプレートフォルダに新しいindex.htmlを作成します。 <!DOCTYPE html> <html lang="ja" xmlns:th="http://www.thymeleaf.org"> <ヘッド> <メタ文字セット="UTF-8"> <title>Docker デプロイメント SpringBoot アプリケーション</title> </head> <本文> <h1>SpringBoot アプリケーションの Docker デプロイメント</h1> <img src="/static/img/2.jpg" alt="" width="100%"> </本文> </html> ホームページコントローラを定義してインデックスにジャンプする @コントローラ パブリッククラスindexController{ @リクエストマッピング("/") パブリック文字列インデックス(){ 「インデックス」を返します。 } } 効果をローカルでプレビューします。 SpringBootアプリケーションをローカルのjarにパッケージ化するmaven-compiler-pluginプラグインを準備する <ビルド> <!--コンパイルされパッケージ化されたファイル名--> <finalName>アプリ</finalName> <プラグイン> <プラグイン> <!--GAV 座標 (G 組織 ID、A プロジェクト ID、V バージョン番号)--> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <バージョン>3.8.1</バージョン> <!--構成: 一般的に言えば、ターゲットとソースは一致していますが、プログラムを他のバージョンの JDK で実行できるようにするため (ターゲット JDK のバージョンが低い場合、ソース コードは、バージョンが低い JDK でサポートされていない構文を使用できません)、ターゲットがソースと異なる状況が発生することがあります --> <構成> <!-- ソースコードで使用される JDK バージョン --> <ソース>1.8</ソース> <!-- 生成されるターゲット クラス ファイルのコンパイル済みバージョン --> <target>1.8</target> <!-- 中国語の文字化けを防ぐための文字セットのエンコード --> <encoding>UTF-8</encoding> </構成> </プラグイン> </プラグイン> </ビルド>
次にcleanを実行し、最後にpackageを実行してプロジェクトをパッケージ化します。 BUILD SUCCESS メッセージは、パッケージが正常に完了したことを示します。 パッケージ化が成功すると、ターゲットフォルダが表示され、パッケージ化されたjarパッケージがディレクトリ内に格納されます。 jarパッケージとDockerfileを準備するjar をデスクトップまたはカスタムの場所にコピーし、ローカルで Dockerfile ファイルを作成して書き込みます ( Dockerfileの作成Dockerfileの手順 java:8-alpine より コピー ./app.jar /tmp/app.jar エントリポイント java -jar /tmp/app.jar Dockerfileの説明 java:8-alpine より: java8 をベースにイメージをビルドします。デフォルトでは、Java イメージをビルドするには、環境変数をインストールして構成する必要があります。java:8-alpine イメージでは、これまでの手順がすべて完了しています。 コピー ./app.jar /tmp/app.jar jarパッケージをコピーする エントリポイント java -jar /tmp/app.jar エントリーコマンド ツールを使用してjarとDockerfileをサーバーにアップロードしますアップロード場所は個人によって異なります。私は /tmp/docker に保存しています。 一時ファイル mkdir ドッカー アップロードファイルを選択 イメージを構築するファイルをアップロードしたディレクトリに移動します: イメージをビルドするためのコマンドを入力します docker build -t テスト:1.0 。
コマンドの説明:
イメージをビルドするときに、Dockerfileに記述した3つのコマンドに従って3つのステップで実行されることがわかります。 ミラーを見るDocker でイメージ コマンドを表示します。 Docker イメージ カスタム画像テストを見ることができます コンテナを作成して実行するDocker イメージ コマンドを実行します。 docker run --name springboot -p 8080:8080 -d test:1.0 コマンドの説明:
コンテナが作成され、正常に実行されました。 実行中の画像を見る画像コマンドの実行 ドッカーps ブラウザはサーバーのポート8080にアクセスします モバイルアクセス: ログを表示コンテナログコマンドの表示 docker ログ -f springboot 例: コンテナのログを表示しますが、リアルタイムで更新されません。新しいログを表示するには、再度実行する必要があります。 docker ログ + コンテナ名 リアルタイム更新ログ docker logs -f + コンテナ名 Docker デプロイ SpringBoot アプリケーション チュートリアルは終了です。 SpringBoot アプリケーションの Docker デプロイメントに関するこの記事はこれで終わりです。SpringBoot アプリケーションの Docker デプロイメントに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: HTMLとXHTML、HTML4とHTML5のタグの違いについて簡単に紹介します。
>>: カルーセルバナーの自動回転効果を実現する純粋な CSS
フロントエンドテストページコード: <テンプレート> <div> <i...
目次1. ルートパスワードを忘れてしまい、データベースにアクセスできない: DBA にとって、スーパ...
1. Vue - 最初の vue-cli プログラムVueの開発はNodeJSに基づいています。実際...
Docker入門Docker はオープンソースのアプリケーション コンテナ エンジンです。従来の仮...
序文スタンドアロン ロックであっても分散ロックであっても、共有データに基づいて現在の操作の動作を判断...
序文この記事では、Windows 10 システムで MySQL を完全に削除してアンインストールする...
この記事では、主に次のような Vue ドラッグ アンド ドロップの簡単な実装を紹介します。レンダリン...
この記事では、ホイール抽選を簡単に実装するためのVueの具体的なコードを参考までに共有します。具体的...
目次1つのマスターと複数のスレーブのレプリケーションアーキテクチャマルチレベルレプリケーションアーキ...
社内には以前からアイドル状態だった、構成の整ったサーバーがあったので、EXSI 6.0 を使って複数...
注: MySQL5.7 で root パスワードをクラックするには、パスワード認証をスキップしてデー...
DTD はマークアップの文法規則のセットです。これは XML 1.0 仕様の一部であり、HTML フ...
始める前にクラウドサーバーを持っています。私のはTencent Cloud Server (Cent...
Mac システムには PHP と Apache が付属していますが、必要なバージョンではない場合があ...
1. テーブルAのデータを使用してMySQLのテーブルBの内容を更新するたとえば、データ テーブル内...