1. مقدمة إلى Docker
Docker هو محرك حاوية تطبيق مفتوح المصدر يسمح للمطورين بتعبئة تطبيقاتهم وتبعياتهم في حاوية محمولة ، ثم نشرها على أي آلة Linux شهيرة ، أو وضعها الافتراضي. تستخدم الحاويات آلية الرمل بالكامل ولن تكون هناك واجهة بينهما. Docker Image هي حل لتشغيل عمليات الحاويات. في هذه المقالة ، سنبني تطبيقًا بسيطًا للحذاء الربيعي.
2. بناء البيئة
JDK 1.8+
Maven 3.0+
Docker أحدث إصدار.
3. بناء مشروع مع Maven
3.1 إنشاء بنية دليل
MKDIR -P SRC/MAIN/JAVA/COM/LIDONG/DEMO
في أنظمة Linux أو Mac.
3.2 إنشاء ملف pom.xml
<؟ XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <Dodeversion> 4.0.0 </symdarversion> <StifactId> lidong-spring-boot-demo </shintifactid> <الإصدار> 1.0-snapshot </version> <parent> <roupiD> org.springframework.boot </rougiD> <StifactId> spring-boot-starter-parent </artifactid> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> </properties> <ependencies> <redence> <roupiD> org.springframework.boot </rougeid> <intifactid> spring-boot-starter-web </stifactid> </redenced> <redenced> <roupiD> org.springframework.boot </groupid> <scope> test </scope> </sependency> <redency> <roupiD> org.springframework.boot </rougeid> <StifactId> spring-boot-starter-thymeleaf </stifaCtId> </premidency> </dependency> <StifactId> Spring-boot-maven-plugin </shintifactid> </spliexin> <clupin> <rouckid> com.spotify </rougeid> <ImageName> $ {docker.image.prefix}/$ {project.artifactid} </filementame> <ckerDirectory> src/main/docker </sockerdirectory> </srossortory> </shangepath>/</targetpath> $ {project.build.directory} <swern> $ {project.build.finalname} .jar </include> </sroger> </srossection> </configuration> </suncloy> </sugionins> </build> </project>يلاحظ:
يوفر البرنامج المساعد Spring Boot Maven العديد من الميزات المريحة:
1) يجمع جميع ملفات JAR على ClassPath ويبني في جرة واحدة يمكن تشغيلها ، مما يجعلها أكثر ملاءمة لتنفيذ الخدمات ونقلها.
2) يبحث عن طريقة الفراغ الثابتة العامة () للاحتفال بصفتها فئة قابلة للتشغيل.
3) يوفر محللًا تبعية مدمجًا لتحديد رقم الإصدار لمطابقة تبعيات SPRING BOOT. يمكنك تجاوز أي إصدار تريده ، لكنه سيؤدي إلى الافتراض
مجموعة نسخة محددة من التمهيد.
مكون Spotify's Docker-Maven-Plugin هو صورة Docker تستخدم لبناء Maven
1) يحدد ImageName اسم الصورة. هذا المثال هو Springio/Lidong-spring-boot-demo
2) يحدد DockerDirectory موقع Dockerfile
3) تشير الموارد إلى الملفات التي يجب تجميعها مع Dockerfile واستخدامها عند إنشاء الصور. بشكل عام ، يجب تضمين حزم جرة التطبيق.
4. اكتب تطبيق Boot Foll First
اكتب تطبيقًا بسيطًا للحذاء الربيعي:
SRC/MAIN/JAVA/COM/LIDONG/DEMO/SAMPLECONTROLLER.JAVA:
package com.lidong.demo ؛ استيراد org.springframework.boot.springapplication ؛ استيراد org.springframework.boot.autoconfigure.springbootapplication org.springframework.web.bind.annotation.responseBody ؛/** * project الاسم: lidong-dubbo * @class الاسم: samplecontroller * @class الوصف: * Author: lidong * الوقت: 2017/2/19 9:34 Am * @chni: chni * eMail: [email protected] */ @controller @SpringBootApplicationPublicPublicpublicpublicpublicpublicpublic samplecontroller {responsebodyrequestmapping (value = "/") string home () {return "hello docker world" ؛ } public static void main (string [] args) {springapplication.run (samplecontroller.class ، "-server.port = 8081") ؛ }}
يتم تحديد الفصل بواسطة springBOOTAPPLICATION RESTCONTROLLER ، ويمكن استخدامه للتعامل مع طلبات الويب حسب Spring MVC.
requestmapping خريطة / إلى المنزل () والرد مع "Hello Docker World".
تستخدم الطريقة الرئيسية () طريقة Spring Boot's SpringApplication.run () لبدء التطبيق.
5. قم بتشغيل البرنامج
5.1 استخدم الأمر Maven
حزمة MVN
يجري:
Java -jar Target/Lidong-spring-boot-demo-1.0-snapshot.jar
قم بزيارة المشروع
إذا كان البرنامج يعمل بشكل صحيح ، فإن المتصفح يزور http: // localhost: 8081/ويمكنك رؤية عبارة "Hello Docker World". على الصفحة.
5.2 استخدام المكونات الإضافية Idea
6. حاوية المشروع
يستخدم Docker تنسيق ملف DockerFile لتحديد طبقة الصورة.
قم بإنشاء ملف SRC/Main/Docker/Dockerfile:
من frolvlad /alpine-oraclejdk8: slimvolume /tmpadd lidong-spring-boot-demo-1.0-snapshot.jar app.jarrun sh -c 'touch /app.jar'env java_opts = "" pointpoint ["sh" ، "،" ، "،" -djava.security.egd = ملف:/dev /./ urandom -jar /app.jar "]
اشرح ملف التكوين هذا:
يحدد الصوت دليل الملف المؤقت AS /TMP. التأثير هو إنشاء ملف مؤقت في دليل المضيف /var /lib /docker وربطه بالحاوية /TMP. خطوات التعديل اختيارية ، وهي ضرورية إذا كانت تتضمن تطبيق نظام الملفات. يتم استخدام دليل /TMP للاستمرار في مجلد بيانات Docker ، لأن حاوية Tomcat المدمجة المستخدمة بواسطة SPRING BOOT تستخدم /TMP كدليل عمل افتراضيًا.
تتم إضافة ملف جرة المشروع إلى الحاوية
EntryPoint تنفيذ Project App.jar. لتقصير وقت بدء تشغيل Tomcat ، أضف خاصية نظام للإشارة إلى "/dev/urandom" كمصدر إنتروبيا
بناء صورة Docker
قم بتنفيذ البناء لتصبح صورة Docker:
حزمة MVN Docker: Build
يجري
تشغيل صورة Docker
Docker Run -P 8081: 8081 -T Springio/Lidong-Spring-Boot-Demo
انظر رمز الربيع هذا. اعتقدت أننا أكملنا برنامج Boot Spring على Docker.
بعد ذلك ، انتقل إلى المتصفح وقم بزيارة http: // localhost: 8081/، ويمكنك رؤية عبارة "Hello Docker World". على الصفحة.
لخص
ما سبق هو تطبيق Boot Spring الذي قدمه لك المحرر. تم تصميم تطبيق Boot Spring وتشغيله وإصداره من خلال Docker. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!