最近メモに新しいことがたくさん追加されましたが、新しい環境に慣れておらず、メモを整理する意欲がありません。 1. デモプロジェクトまず、Docker ホストにデプロイする簡単なプロジェクトを準備し、プロジェクトが正常に実行されるかどうかを確認します。 1.1 インターフェースの準備Dockerのデプロイが成功したかどうかを確認するためのテストインターフェースを準備する @レストコントローラ @リクエストマッピング("/") パブリッククラスHelloController{ @GetMapping("/hello") パブリック文字列非表示() { 「Hello World」を返します。 } } 1.2 構成の準備統合管理を容易にするために、application.yml ファイルに Docker ホスト アドレスを追加します (この機能には、依存するプラグインのインストールが必要です) サーバ: ポート: 8080 春: 応用: 名前: docker-deploy-test ドッカー: ホスト: http://xxx.xxx.xxx.xxx:2375 2. Dockerがリモート接続を開くDocker もクライアント/サーブ アーキテクチャ (デーモン デーモン) であり、デフォルトではローカルでのみアクセスできるため、プロジェクトを Docker にデプロイする前に、インターネットからアクセスできるように設定する必要があります。 1.1 設定ファイルを変更するDockerホストの設定を編集し、次の設定行を追加します(これは、どのアドレスでもポート2375にアクセスできることを意味します)。 $vim /usr/lib/systemd/system/docker.service # ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock 1.2 設定を更新して再起動する$ systemctlデーモンリロード $ systemctl dockerを再起動します 1.3 認証ログインポート2357を直接開き、誰でもDockerホストにプッシュできるようにします。最初にマイニングイメージをプッシュしたところ、ホストがスタックしてログインできなくなりました。その後、システムイメージを再インストールするしかありませんでした。 Docker は SSL 証明書を使用したログインをサポートしています。外部ネットワーク環境の場合は、必ず SSL を使用してログインしてください (著者は認証用の OpenSSL メモを記録していますが、整理する時間がありませんでした) 3. IDEAにDockerプラグインをインストールする私が使用した IDEA の 2019 バージョンには Docker プラグインがデフォルトで統合されており、再度インストールする必要はありません。 IDEA が接続するリモート ホストのアドレスとポートを一致させ、最後にリモート Docker ホストに接続されているかどうかを確認します。 ここで新しい Docker を作成し、ホスト アドレスを入力すると自動的に接続されます。接続が成功したと表示されたら、IDEA がホストに接続されていることを意味します。 4. MavenにDockerプラグインを追加する前の手順の IDEA プラグインは、イメージをビルドおよびデプロイできるほか、Docker を管理することもできます。しかし、著者はMavenプラグインとIDEAプラグインを併用しており、プログラムの構築と展開を容易にしている。 <!-- docker プラグイン --> <プラグイン> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <バージョン>1.0.0</バージョン> <!-- docker:build を Maven パッケージ ライフサイクルにバインドします --> <処刑> <実行> <id>docker-build-image</id> <phase>パッケージ</phase> <目標> <goal>ビルド</goal> </目標> </実行> </処刑> <!-- プラグインの設定 --> <構成> <!-- ビルドされたイメージの名前: タグ--> <画像名>${プロジェクト.アーティファクトID}:${プロジェクト.バージョン}}</画像名> <!-- dockerfile を保存するパス--> <dockerディレクトリ>${project.basedir}</dockerディレクトリ> <!-- Docker ホスト アドレス。初期化フェーズ中にプラグインによって application.yml から解析されます --> <dockerホスト>${docker.host}</dockerホスト> <!-- SSL ログインが有効な場合の SSL 認証証明書アドレス --> <!-- <dockerCertPath></dockerCertPath> --> <リソース> <リソース> <!-- イメージの構築に使用されるリソース (つまり、jar パッケージ) と、イメージがコンテナーにプッシュされるディレクトリ --> <ターゲットパス>/</ターゲットパス> <ディレクトリ>${project.build.directory}</ディレクトリ> <include>${project.build.finalName}.jar</include> </リソース> </リソース> </構成> </プラグイン> 5. Dockerfileを書くDockerfileファイルを作成し、次の内容を入力して、プロジェクトのルートディレクトリに配置します。 openjdk:8-jdk-alpine から メンテナー [著者] [[email protected]] ARG JAR_FILE=/target/*.jar ${JAR_FILE} app.jar をコピーする エクスポーズ8080 エントリポイント ["java","-jar","/app.jar"] 6. プロジェクトをパッケージ化するMaven プラグインは、パッケージと Docker:build の実行プロセスをバインドします。つまり、プロジェクトが jar にパッケージ化された後、Docker:build が自動的に実行され、イメージがビルドされてリモート Docker ホストに公開されます (プロジェクトが大きい場合は、イメージが Docker ホストにプッシュされるまでの待機時間が長くなります)。 7. コンテナを作成するIDEA プラグインで Docker を管理できます。右下隅のサービスをクリックすると、接続された Docker でビルドされたイメージが表示されます。次に、このイメージを右クリックしてコンテナーを作成できます。 ポップアップ ボックスで、作成するコンテナーの名前とコンテナーにマップされたポートを入力し、[実行] をクリックしてコンテナーが起動するのを待ちます。起動が完了すると、IDEA プラグインに新しく作成されたコンテナが表示されます。それをクリックすると、コンテナの詳細が表示されます。 8. 展開を確認するホストのIPアドレスまたはドメイン名を使用して、リリースされたばかりのテストインターフェースにアクセスします。 SpringBoot と Docker の統合に関するこの記事はこれで終わりです。SpringBoot と Docker の統合に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: HTML で dl(dt,dd)、ul(li)、ol(li) を使用する方法
>>: hasLayout によって発生する CSS バグの一覧
最近 redis を使っていて、とても便利だと感じているのですが、インメモリ データベースを選択する...
目次導入効果原理形状練習するこの記事では、例を使用して、MySQL マスター/スレーブ レプリケーシ...
#include <asm/io.h> #define ioremap(cookie,...
1. はじめに不明な値または部分的に既知の値をフィルタリングする場合は、like 演算子を使用でき...
1. HTMLとは何かHTML (ハイパーテキスト マークアップ言語): ハイパーテキスト マーク...
Zabbix サーバー環境プラットフォームバージョン: ZABBIX バージョン 4.4システム:...
序文プロセス管理の役割:サーバーの健全性状態を判定する: プロセスの状態 (メモリ、CPU 占有率な...
ajax の parsererror エラー (バックグラウンドからフロントエンドに送信される js...
効果画像: html: <div class='site_bar'>ホー...
このブログのすべてのコンテンツは、クリエイティブ コモンズ ライセンスの下でライセンスされています。...
効率的に要件を満たし、コンポーネント ライブラリの肥大化や車輪の再発明を避けるために、私は以前、大画...
1. Vue - 最初の vue-cli プログラムVueの開発はNodeJSに基づいています。実際...
Xhtml には、あまり使用されないが非常に便利なタグが多数あります。半分の労力で 2 倍の結果を達...
原則的にはwindow.print()メソッドを呼び出すことですが、このメソッドは現在のページ全体を...
ここでは、dockerがインストールされたcentosサーバーを紹介し、リモートリンクサービスを開始...