Baru -baru ini, kontainerisasi telah menjadi tren. Server dapat virtualisasi banyak kontainer, dan pada saat yang sama menyediakan layanan, berbagi sumber daya perangkat keras, dan menghemat biaya. Pemimpin dalam kontainerisasi adalah Docker. Semua rilis layanan microser di perusahaan kami telah dikemukakan. Spring Boot juga mengikuti tren dan menambahkan plug-in Maven Docker, yang dapat membuat gambar dengan mengeksekusi perintah.
Konten utama bagian ini bukan tentang kode, tetapi tentang plugin Docker ini. Tanpa basa -basi lagi, pergi ke pom
<lugin> <GroupId> com.spotify </proupid> <ArTifactId> Docker-maven-plugin </artifactid> <version> 0.4.12 </version> <Configuration> <!-Catatan bahwa Imagename harus mematuhi [a-z0-9-_. https://github.com/spotify/docker-maven-plugin nama repositori tidak valid ... hanya [a-z0-9-_.] Diizinkan-> <magename> spring-boot-docker-start </magename> <!-setara dengan java, gambar lokal digunakan secara lokal, jika tidak, tarik dari Remote-Remote-Java, gambar lokal digunakan secara lokal, jika tidak, tarik dari Remote-Remote-Remote-Java, Image Lokal digunakan secara lokal, jika tidak, jika tidak, Pull dari Remote-Remote dari Java, jika tidak, jika tidak, jika tidak, jika tidak, jika tidak, jika tidak, jika tidak, jika tidak. <Exposes> <!-Ekspos Port 8080 dalam wadah-> <papse> 8080 </papose> </exposes> <!-masukkan point, command-> <trictpoint> ["java", "-jar", "/$ {project.build.finalname} .jar"] </entrypoint> </entrypoint> </sumber daya> </finalname}. <Rectory> $ {Project.build.directory} </cirectory> <certed> $ {Project.build.finalname} .jar </certert> </resource> </sumber daya> </ Configuration> </lugin> ImageName adalah nama gambar. BaseImage adalah gambar dasar. Jika ada gambar lokal, jika tidak, tarik dari repositori jarak jauh, port port 8080 di wadah, jalankan perintah java -jar, dan mulai microservice. Kita tahu bahwa menggunakan Docker memerlukan pembuatan file DockerFile, dan elemen -elemen di dalamnya benar -benar tercermin melalui tag plugin Maven. Masih ada prasyarat, Anda harus menginstal Docker terlebih dahulu. Pada titik ini, kami mulai berlari
Langkah 1: Jalankan MVN Clean Package Docker: Bangun untuk membuat gambar yang dihasilkan.
Langkah 2: Mulai Mirror Docker Run -IT -P Spring-Boot-Docker-Start dan periksa log di wadah
➜ Spring-Boot-Docker-Start Git: (Master) Docker Run -It -P Spring-Boot-Docker-Start. ____ _ __ _ /// ___'_ __ _ _ (_) _ __ __ _ / / / / / () / ___ | '_ |' _ | / / / / / | | | | | | | .__ | | _ | | _ | | _/__, | / / / / / / ============================================= ___ / = / _ / _ / :: Boot Spring :: v1.3.5.release) 2018-03-25 08: 41: 56.2774444444444444444444444 ApplicationMain on 075543f8f5b6 with PID 1 (/spring-boot-docker-start.jar started by root in /)2018-03-25 08:41:56.287 INFO 1 --- [ main] com.shuqi.ApplicationMain : No active profile set, falling back to default profiles: default2018-03-25 08:41:56.406 INFO 1 --- [Main] ationConfigembeddedWebApplicationContext: Refreshing org.springframework.boot.context.embedded.AnnotationConfigembeddedWebApplicationContext@126D28D3: Tanggal Startup [Sun Mar 25 08:41:56 UTC 2018]; Root of Context Hierarchy2018-03-25 08: 41: 58.356 Info 1 --- [Utama] SbcettomcatembeddedServletContainer: Tomcat diinisialisasi dengan port: 8080 (http) 2018-03-25 08: 41: 58.382 Info 1 -aPa. Layanan Tomcat2018-03-25 08: 41: 58.384 Info 1 --- [Utama] org.apache.catalina.core.standardengine: Mulai Mesin Servlet: Apache Tomcat/8.0.332018-03-25 08: 41: 58.512 Info 1 -------os-st. Initializing Spring embedded WebApplicationContext2018-03-25 08:41:58.512 INFO 1 --- [ost-startStop-1] osweb.context.ContextLoader : Root WebApplicationContext: initialization completed in 2113 ms2018-03-25 08:41:58.920 INFO 1 --- [ost-startStop-1] osbcembedded.filterregistrationBean: pemetaan servlet: 'DispatcherServlet' ke [/] 2018-03-25 08: 41: 58.928 Info 1 --- [OST-StartStop-1] osbcembedded.filterregistrationBean: Pemetaan Filter: 'karakterenencyfilter'-T: 68-25-25: (Mapping Filter: 'oSbcembedded. Info 1 --- [ost-startstop-1] osbcembedded.filterregistrationbean: pemetaan filter: 'hiddenhttpmethodfilter' to: [/*] 2018-03-25 08: 41: 58.937 info 1 --- [ost-startstop-1] osbcembedded.filterregat 'httpputformcontentfilter' to: [/*] 2018-03-25 08: 41: 58.938 Info 1 --- [OST-StartStop-1] Osbcembedded.FilterregistrationBean: Pemetaan: '41. swsmmarequestmappingHandlerAdapter: mencari @controlleradvice: org.springframework.boot.context.embedded.annotationconfigbeddedddedwapplikasiContext@126d28d3: Tanggal Startup [Sun Mar 08:41:56 UTC 2018]; Root of Context Hierarchy2018-03-25 08: 41: 59.516 Info 1 --- [Main] swsmmarequestmappingHandlermapping: dipetakan "{[/hello], Metode = [get]}" ke public java.lang.string com.shuqi.controller.hellocontroler.heller.Lang.string com.shuqi.controller.hellocontroler.heller.Lang.Lang.String com.shuqi.controller.hellocontroler.heller.Lang.Lang.shelling Info 1 --- [main] swsmmarequestmappingHandlermapping: dipetakan "{[/error], menghasilkan = [teks/html]}" ke org.springframework.web.servlet.modelandView publik org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)2018-03-25 08:41:59.524 INFO 1 --- [ main] swsmmarequestmappinghandlermapping: dipetakan "{[/error]}" ke org.springframework.http.responseentity publik <java.util.map <java.lang.string, java.lang.object >> org.springframework.boot.autoconfigure.web.basicerrorController.Error (javax.servlet.http.httpservletrequest) 2018-03-25 08: 41: 59.584 info 1 --- [utama] oswshand.simple.simple. tipe [kelas org.springframework.web.servlet.resource.resourcehttprequestHandler] 2018-03-25 08: 41: 59.585 Info 1 --- [Main] oswshandler.Simpleurlermapping: dipetakan Url Path [/** oswshandler. org.springframework.web.servlet.resource.ResourceHttpRequestHandler]2018-03-25 08:41:59.645 INFO 1 --- [ main] oswshandler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-03-25 08: 41: 59.754 Info 1 --- [Utama] OsjaannotationMBeanExporter: Mendaftar Kacang JMX Info di Startup2018-03 08.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8. sbcetTomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)2018-03-25 08:41:59.838 INFO 1 --- [ main] com.shuqi.ApplicationMain : Started ApplicationMain in 4.084 seconds (JVM running for 5.012)[2018-03-25 08:41:59] server started! Dimulai dengan sukses.
Langkah 3: Masukkan Docker PS untuk melihat port 8080 mana di wadah yang dipetakan ke port lokal
Perintah ID ID Kontainer Dibuat Status Port Names075543F8F5B6 Spring-boot-Docker-Start "Java -Jar /Spring ..." sekitar satu menit yang lalu sekitar satu menit 0,0.0.0:32768->8080/tcp trust_noether
Ini pasti akan menjadi port 32768.
Langkah 4: Masukkan http: // localhost: 32768/halo di browser dan lihat hasilnya
Ini berarti bahwa kami telah berhasil mengakses program di dalam wadah!
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.