最近では、コンテナ化が傾向になっています。サーバーは複数のコンテナを仮想化し、同時にサービスを提供し、ハードウェアリソースを共有し、コストを節約できます。コンテナ化のリーダーはDockerです。当社のすべてのマイクロサービスリリースはコンテナ化されています。また、Spring Bootはトレンドに従い、DockerのMavenプラグインを追加します。これにより、コマンドを実行することで画像を作成できます。
このセクションの主な内容は、コードに関するものではなく、このDockerプラグインに関するものです。これ以上苦労せずに、POMに行きます
<Plugin> <groupId> com.spotify </groupid> <artifactid> docker-maven-plugin </artifactid> <version> 0.4.12 </version> <configuration> <! - イメージネームは通常の[a-z0-9-_。]に準拠する必要があることに注意してください。 https://github.com/spotify/docker-maven-plugin無効なリポジトリ名...のみ[a-z0-9-_。]が許可されています - > <イメージネーム>スプリングブートドッカー - スタート</イメージネーム> <! <Exposes> <! - コンテナのポート8080を公開 - > <Expose> 8080 </expose> </exposes> <! - enter point、command-> <entrypoint> ["java"、 "-jar"、 "/$ {project.build.finalname} .jar"] < <directory> $ {project.build.directory} </directory> <constor> $ {project.build.finalname} .jar </incord> </resource> </resources> </configuration> </plugin> Imagenameは画像の名前です。ベースイメージは基本的な画像です。ローカル画像がある場合は、リモートリポジトリから引っ張り、コンテナにポート8080を公開し、Java -Jarコマンドを実行して、マイクロサービスを開始します。 Dockerを使用するには、DockerFileファイルの作成が必要であり、内部の要素がMavenプラグインタグを介して完全に反映されることを知っています。まだ前提条件があります。最初にDockerをインストールする必要があります。この時点で、実行を開始します
ステップ1:MVNクリーンパッケージDockerを実行します:ビルドして生成された画像を作成します。
ステップ2:Mirror Docker Run -IT -P Spring-Boot-Docker-Startを起動し、コンテナのログを確認します
spring-boot-docker-start git :(マスター)docker run -it -p spring-boot-docker-start。 ____ _ __ _ /// ___'_ __ _ _(_)_ __ __ _ / / / / ( ( )/___ | '_ | '_ | / / /` | / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | (_| | ) ) ) ) ' |____| .__ | | _ | | _ | | _/__、| / / / / / / ============================================================================スプリングブート::(V1.3.5.REELEASE)2018-03-25 08:41:56.274 INFRITINE:MAIN 075543F8F5B6のPID 1( /spring-boot-docker-start.jarがroot in / /)2018-03-25 08:41:56.287 INFO 1-- [main] com.shuqi.applicationmain:アクティブなプロファイルが戻っていない、デフォルトのプロファイルに戻る:デフォルト2018-03-25 08: [main] ationConfigembededwebapplicationContext:refsing org.springframework.boot.context.embedded.annotationconfigembeddedwebapplicationcontext@126d3:起動日[Sun Mar 25 08:41:56 UTC 2018];コンテキストのroot hierarchy2018-03-25 08:41:58.356情報1 --- [メイン] sbcettomcatembeddedservletcontainer:ポートで初期化:8080(http)2018-03-25 08:41:58.382情報Service Tomcat2018-03-25 08:41:58.384情報1 --- [Main] org.apache.catalina.core.standardengine:Starting servlet Engine:Apache Tomcat/8.0.33332018-03-25 08:41:58.512 INFO 1- [ost-StartStop-occt。 :スプリング埋め込みWebApplicationContext2018-03-25 08:41:58.512 INFO 1 - [OST-STARTSTOP-1] OSWEB.CONTEXT.CONTEXTLOADER:root WebApplicationContext:2113 MS2018-03-25 08:41:58.920 INFO-STATT- OSBCEMBEDED.FILTERREGISTRATIONBEAN:マッピングサーブレット:「DispatcherServlet」から[/] 2018-03-25 08:41:58.928 INFO 1 - [OST-STARTSTOP-1] OSBCEMBEDED.FILTERREGISSTRATIONBEAN:マッピングフィルター:[/*] 08:41:58.937 INFO 1 --- [OST-STARTSTOP-1] OSBCEMBEDED.FILTERREGISSTRATIONBEAN:マッピングフィルター:「HiddenHttpMethodFilter 'to:[/*] 2018-03-25 08:41:58.937情報フィルター: 'httpputformcontentfilter' to:[/*] 2018-03-25 08:41:58.938 INFO 1 --- [OST-STARTSTOP-1] OSBCEMBEDED.FILTERREGISTRATIONBEAN:マッピングフィルター:[/*] 2018-03-25 08:59.406 swsmarequestmappinghandleradapter:@controlleradvice:org.springframework.boot.context.embedded.annotationconfigemdeddedwebapplicationcontext@126d28d3:起動日[Sun 3月25 08:41:56 UTC 2018];コンテキストのルートhierarchy2018-03-25 08:41:59.516 INFO 1 --- [MAIN] SWSMAREQUESTMAPPINGHANDLERMAPPING:MAPPED "{[/hello]、methods = [get]}" " 08:41:59.523 INFO 1 --- [MAIN] SWSMAREQUESTMAPPINGHANDLERMAPPING:MAPPED "{[/ERROR]、produces = [text/html]}" to public org.springframework.web.servlet.modelandview org.springframework.boot.autoconfigure.web.basicerrorcontroller.errorhtml(javax.servlet.http.httpservletrequest、javax.servlet.http.httpservletresponse) swsmarequestmappinghandlermapping:マッピング "{[/error]}" "to public org.springframework.http.responseentity <java.util.map <java.lang.string、java.lang.object >> org.springframework.autoconfigure.web.basicerrorcontroller.error(javax.servlet.http.httpservletrequest)2018-03-25 08:41:59.584 Info 1-- [メイン] oswshandler.simpleurlhhnedlermaptタイプのハンドラー[クラスorg.springframework.web.servlet.resource.resourcehtprequesthandler] 2018-03-25 08:41:59.585情報1 --- [メイン] oswshandler.simpleurlhandlermapping:[/**] org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08:41:59.645 Info 1 - [Main] Oswshandler.simpleurlhandlermapping:マッピングURLパス[/**/favicon.ico] org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08:41:59.754 INFO 1 - [MAIN] OSJEAANNOTATIONMBEANEXPORTER:Startup2018-03-25 08:41:59.834 InfoのJMX露出のために豆の登録sbcettomcatembededdedservletcontainer:Tomcatはポートで開始されました:8080(http)2018-03-25 08:41:59.838 INFO 1 --- [Main] Com.shuqi.ApplicationMain:4.084秒でApplication-Mainを開始しました。正常に開始しました。
ステップ3:Docker PSを入力して、コンテナ内のポート8080がローカルポートにマッピングされているかを確認します
コンテナID画像コマンド作成ステータスポート名Names
ポート32768になるはずです。
ステップ4:http:// localhost:32768/hello browserに入力し、結果を参照してください
これは、コンテナ内のプログラムに正常にアクセスしたことを意味します!
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。