ในช่วงเวลาที่ผ่านมาการจัดคอนเทนเนอร์ได้กลายเป็นแนวโน้ม เซิร์ฟเวอร์สามารถทำให้คอนเทนเนอร์หลายตัวเสมือนจริงและในขณะเดียวกันก็ให้บริการแบ่งปันทรัพยากรฮาร์ดแวร์และบันทึกต้นทุน ผู้นำในคอนเทนเนอร์คือนักเทียบท่า Microservices ทั้งหมดที่วางจำหน่ายใน บริษัท ของเราได้รับการบรรจุ Spring Boot ยังติดตามเทรนด์และเพิ่มปลั๊กอิน Maven ของ Docker ซึ่งสามารถสร้างภาพได้โดยดำเนินการคำสั่ง
เนื้อหาหลักของส่วนนี้ไม่เกี่ยวกับรหัส แต่เกี่ยวกับปลั๊กอิน Docker นี้ โดยไม่ต้องกังวลใจเพิ่มเติมไปที่ POM
<plugin> <sloupid> com.spotify </groupId> <ratifactId> Docker-Maven-Plugin </artifactid> <sersion> 0.4.12 </เวอร์ชัน> <การกำหนดค่า> <! https://github.com/spotify/docker-maven-plugin ชื่อที่เก็บที่ไม่ถูกต้อง ... เท่านั้น [a-z0-9-_.] ได้รับอนุญาต-> <ageMeName> Spring-Boot-Docker-Start </imagename> <! <การเปิดเผย> <!-แสดงพอร์ต 8080 ในคอนเทนเนอร์-> <Sepose> 8080 </Sepose> </เปิดเผย> <!-ป้อนจุด, คำสั่ง-> <inentPoint> ["java", "-jar", "/$ {project.build.finalname} .jar" <Sirectory> $ {project.build.directory} </directory> <calfouch> $ {project.build.finalname} .jar </include> </sursece> </resources> ImageName เป็นชื่อของภาพ BaseImage เป็นภาพพื้นฐาน หากมีรูปภาพท้องถิ่นถ้าไม่ให้ดึงออกมาจากที่เก็บระยะไกลให้เปิดเผยพอร์ต 8080 ในคอนเทนเนอร์ให้เรียกใช้คำสั่ง Java -Jar และเริ่ม Microservice เรารู้ว่าการใช้ Docker ต้องการการสร้างไฟล์ DockerFile และองค์ประกอบภายในจะสะท้อนผ่านแท็กปลั๊กอิน Maven อย่างสมบูรณ์ ยังมีสิ่งที่จำเป็นต้องมีคุณต้องติดตั้ง Docker ก่อน ณ จุดนี้เราเริ่มวิ่ง
ขั้นตอนที่ 1: ดำเนินการ MVN Clean Package Docker: สร้างเพื่อสร้างภาพที่สร้างขึ้น
ขั้นตอนที่ 2: เริ่ม Mirror Docker Run -it -p Spring-Boot-Docker-Start และตรวจสอบบันทึกในคอนเทนเนอร์
➜ Spring-Boot-Docker-start Git: (Master) Docker Run -it -p Spring-Boot-Docker-Start - - - - - / / / / / / ============================================== ___ / = / _ / _ / :: สปริงบูต :: (v1.3.5.5.5.5) 2018-03-25 08: 41: 56.274 ApplicationMain บน 075543F8F5B6 พร้อม PID 1 (/spring-boot-docker-start.jar เริ่มต้นด้วยรูทใน /) 2018-03-25 08: 41: 56.287 ข้อมูล 1 --- [หลัก] com.shuqi.ApplicationMain: ไม่มีการตั้งค่าโปรไฟล์ หลัก] AtionConfigembeddedWebapplicationContext: รีเฟรช org.springframework.boot.context.embedded.annotationconfigembeddedwebapplicationContext@126d28d3: วันที่เริ่มต้น รากของบริบท Hierarchy2018-03-25 08: 41: 58.356 ข้อมูล 1 --- [หลัก] SBCettomcatembeddedservletContainer: Tomcat เริ่มต้นด้วยพอร์ต: 8080 (HTTP) 2018-03-25 08: 41: 58.382 บริการ TOMCAT2018-03-25 08: 41: 58.384 ข้อมูล 1 --- [Main] org.apache.Catalina.Core.StandardEngine: เครื่องยนต์เซิร์ฟเล็ต: Apache Tomcat/8.0.332018-03-25 08: 41: 58.512 ข้อมูล 1 --- การเริ่มต้นสปริงแบบฝัง webapplicationContext2018-03-25 08: 41: 58.512 ข้อมูล 1 --- [ost-startstop-1] Osweb.context.contextloader: รูท webapplicationContext: การเริ่มต้นเสร็จสมบูรณ์ใน 2113 MS2018-03-25 08: 41: 58.920 : การทำแผนที่ servlet: 'dispatcherservlet' ถึง [/] 2018-03-25 08: 41: 58.928 ข้อมูล 1 --- [ost-startstop-1] osbcembedded.filterregistrationbean: ตัวกรองการทำแผนที่: [OST-StartStop-1] OSBCEMBEDDED.FilterRegistrationBean: การทำแผนที่ตัวกรอง: 'Hiddenhttpmethodfilter' ถึง: [/*] 2018-03-25 08: 41: 58.937 ข้อมูล 1 --- 'httpputformcontentfilter' ถึง: [/*] 2018-03-25 08: 41: 58.938 ข้อมูล 1 --- [ost-startstop-1] osbcembedded.filterregistrationbean: 59. 59. SWSMMAREQUESTMAPPINGHANDLERADAPTER: มองหา @ControllerAdvice: org.springframework.boot.context.embedded.annotationConfigembeddedWebapplicationContext@126d28d3: วันที่เริ่มต้น รากของบริบทลำดับชั้น 2018-03-25 08: 41: 59.516 ข้อมูล 1 --- [หลัก] SWSMMAREQUESTMAPPIONDHANDLERMAPPANC: MAPPED "{[/สวัสดี], วิธีการ = [get]}" บน Java.lang.lang 08: 41: 59.523 ข้อมูล 1 --- [Main] SWSMMAREQUESTMAppingHandLermapping: แมป "{[/ข้อผิดพลาด], ผลิต = [ข้อความ/html]}" ลงบน org.springframework.web.servlet.modelandview สาธารณะ org.springframework.boot.autoconfigure.web.basicerrorcontroller.errorhtml (javax.servlet.http.httpservletrequest, javax.servlet.http.httpservletresponse) 2018-0303030303 swsmmarequestmappinghandlermapping: แมป "{[/ข้อผิดพลาด]}" ลงบน org.springframework.http.responseentity <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 --- [Main] ตัวจัดการประเภท [คลาส org.springframework.web.servlet.resource.resourcehtttprequesthandler] 2018-03-25 08: 41: 59.585 ข้อมูล 1 --- [หลัก] Oswshandler.simpleurlhandlermapping: Mapped URL Path [/**] org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.645 ข้อมูล 1 --- [หลัก] Oswshandler.simpleurlhandlermapping org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.754 ข้อมูล 1 --- [หลัก] OsjeaannotationMbeanExporter: การลงทะเบียนถั่ว SbcettomcatembeddedservletContainer: Tomcat เริ่มต้นบนพอร์ต (S): 8080 (HTTP) 2018-03-25 08: 41: 59.838 ข้อมูล 1 --- [หลัก] com.shuqi.ApplicationMain: เริ่มต้นแอปพลิเคชันใน 4.084 วินาที เริ่มประสบความสำเร็จ
ขั้นตอนที่ 3: ป้อน Docker PS เพื่อดูว่าพอร์ต 8080 ในคอนเทนเนอร์ถูกแมปเข้ากับพอร์ตท้องถิ่น
คำสั่ง container id image image ports ชื่อ Ports ชื่อ 075543F8F5B6 Spring-Boot-Docker-Start "Java -jar /Spring ... " ประมาณหนึ่งนาทีที่ผ่านมาประมาณหนึ่งนาที 0.0.0.0.0:32768->8080/TCP Trusting_Noether
แน่นอนว่าเป็นพอร์ต 32768
ขั้นตอนที่ 4: ป้อน http: // localhost: 32768/สวัสดีในเบราว์เซอร์และดูผลลัพธ์
ซึ่งหมายความว่าเราได้เข้าถึงโปรแกรมในคอนเทนเนอร์สำเร็จแล้ว!
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น