1. Pengantar Docker
Docker adalah mesin wadah aplikasi open source yang memungkinkan pengembang untuk mengemas aplikasi dan ketergantungan mereka ke dalam wadah portabel, dan kemudian menerbitkannya ke mesin Linux populer apa pun, atau virtualisasi mereka. Wadah menggunakan mekanisme kotak pasir sepenuhnya dan tidak akan ada antarmuka di antara mereka. Gambar Docker adalah solusi untuk menjalankan proses yang dikemas. Dalam artikel ini, kami akan membangun aplikasi boot musim semi sederhana.
2. Konstruksi Lingkungan
JDK 1.8+
Maven 3.0+
Docker versi terbaru.
3. Bangun proyek dengan Maven
3.1 Buat Struktur Direktori
mkdir -p Src/main/java/com/lidong/demo
Dalam sistem Linux atau Mac.
3.2 Buat file pom.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <ModelVersion> 4.0.0 </modelversion> <groupid> com.lidong.dem.dem.dem.dem.dem.dem <ArtifactId> lidong-spring-boot-demo </arttifactid> <version> 1.0-snapshot </version> <partent> <groupid> org.springframework.boot </sroupid> <Artifactid> Spring-boot-starter-parent </arttifactid </groupid> <t Artifactid> Spring-bootter-parent </arttifactId> <version> 1.5.1.1.1.release </artifactid </arttifactid </versi 1.5. <Project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <proypor.reporting.outputencoding> UTF-8 </project.report.outputenCoding> <Java.version> 1.8 </java.version.version> <java.version> 1.8 </java.version.version.Merige.mage.versio.versio. </ Properties> <Dependencies> <dependency> <GroupId> org.springframework.boot </groupid> <ArTifactId> Spring-boot-starter-web </t Artifactid> </dependency> <Rupplency> <Groupid> org.springframework.boot </groupid> <ArtifacTid> <RoGRUPID> org.springframework.BOOT </groupid> <ArtifacTid> <scope> tes </seupop> </gandendency> <dependency> <GroupId> org.springframework.boot </sroupid> <ArTifactid> Spring-boot-starter-thymeleaf </stifactid> </dependency> </groupping> </dependency> </builder> <clugin> <plugin> </groupf. </orgook. </groupf. <ArtifactId> spring-boot-maven-plugin </artifactid> </lugin> <lugin> <groupid> com.spotify </proupid> <ArtifactId> Docker-Maven-plugin </arttifactid> <version> 0.4.13 </version> <Configuration> <AmageName> $ {docker.image.prefix}/$ {Project.artifactId} </magename> <lockerDirectory> SRC/Main/Docker </lockerDirectory> <Serubah> <Serayat> <SourcePath>/</targetPath> <Recoptory> $ {proyek.build> <certed> $ {Project.build.finalname} .jar </cert> </serformage> </seratey> </configuration> </lugin> </lugin> </build> </poject>Melihat:
Plugin Spring Boot Maven menyediakan banyak fitur yang nyaman:
1) Ini mengumpulkan semua file JAR di Classpath dan dibangun menjadi satu toples yang dapat dijalankan, yang membuatnya lebih nyaman untuk mengeksekusi dan mentransfer layanan.
2) Ini mencari metode public static void main () untuk menandai sebagai kelas runnable.
3) Ini memberikan parser ketergantungan bawaan untuk mengatur nomor versi agar sesuai dengan dependensi Spring Boot. Anda dapat mengganti versi apa pun yang Anda inginkan, tetapi akan default
Set boot versi yang dipilih.
Plugin Docker-Maven-Plugin Spotify adalah gambar Docker yang digunakan untuk membangun Maven
1) Imagename menentukan nama gambar. Contoh ini adalah Springo/Lidong-Spring-Boot-Demo
2) Dockerdirectory Menentukan lokasi Dockerfile
3) Sumber daya mengacu pada file yang perlu disatukan dengan DockerFile dan digunakan saat membangun gambar. Secara umum, paket stoples aplikasi perlu dimasukkan.
4. Tulis aplikasi boot musim semi pertama
Tulis aplikasi boot musim semi sederhana:
src/main/java/com/lidong/demo/samplecontroller.java:
Paket com.lidong.demo; impor org.springframework.boot.springapplication; impor org.springframework.boot.autoconfigure.springbootApplication; import org.springframework.stereotype.controller; impor org.sprampappappaping org.springframework.web.bind.annotation.responseBody;/** * @Project Nama: lidong-dubbo * @Class Nama: samplecontroller * @class Deskripsi: * @Author: lidong * @creation waktu: 2017/2/19 9:34 AM * @kaPany: chn @creation: 2017/2/19 9:34 AM * @cany: chn @creation: 2017/2/19 9:34 AM * @Company: chn: @Email: [email protected] */ @controller @springbootApplicationPublic Class samplecontroller {@ResponseBody @RequestMapping (value = "/") String home () {return "Hello Docker World"; } public static void main (string [] args) {springApplication.run (samplecontroller.class, "-server.port = 8081"); }}
Kelas diidentifikasi oleh @springbootApplication @RestController, dan dapat digunakan untuk menangani permintaan web oleh Spring MVC.
@Requestmapping peta / ke home () dan merespons dengan "Hello Docker World".
Metode utama () menggunakan metode springApplication.run () Spring Boot untuk memulai aplikasi.
5. Jalankan program
5.1 Gunakan perintah Maven
Paket MVN
berlari:
Java -Jar Target/Lidong-Spring-Boot-Demo-1.0-Snapshot.jar
Kunjungi proyek
Jika program berjalan dengan benar, browser mengunjungi http: // localhost: 8081/dan Anda dapat melihat kata -kata "Hello Docker World." di halaman.
5.2 Menggunakan plug-in ide
6. Container Proyek
Docker menggunakan format file DockerFile untuk menentukan lapisan gambar.
Buat File SRC/Main/Docker/DockerFile:
Dari Frolvlad /Alpine-Oraclejdk8: Slimvolume /Tmpadd Lidong-Spring-Boot-Demo-1.0-Snapshot.jar App.jarrun sh -c 'Touch /papp.jar'env Java_opts = "" Entrypoint ["sh", "-c", "java_opts =" "entrypoint [" sh "," -c "," java_opts = "" shoint ["sh", "-c" -Djava.security.egd = file:/dev /./ urandom -jar /app.jar "]
Jelaskan file konfigurasi ini:
Volume menentukan direktori file sementara AS /TMP. Efeknya adalah membuat file sementara di direktori host /var /lib /docker dan menautkannya ke wadah /TMP. Langkah -langkah modifikasi adalah opsional, dan perlu jika melibatkan aplikasi sistem file. Direktori /TMP digunakan untuk bertahan pada folder data Docker, karena wadah Tomcat tertanam yang digunakan oleh Spring Boot menggunakan /TMP sebagai direktori kerja secara default.
File JAR proyek ditambahkan ke wadah
ENTERPOINT EKSEKUSI Proyek App.jar. Untuk mempersingkat waktu startup Tomcat, tambahkan properti sistem untuk menunjuk ke "/dev/urandom" sebagai sumber entropi
Bangun gambar Docker
Jalankan Build Untuk Menjadi Gambar Docker:
MVN Paket Docker: Build
berlari
Jalankan gambar Docker
Docker Run -P 8081: 8081 -T Springo/Lidong-Spring-Boot-Demo
Lihat ikon musim semi ini. Saya pikir kami telah menyelesaikan program Spring Boot di Docker.
Selanjutnya, buka browser dan kunjungi http: // localhost: 8081/, dan Anda dapat melihat kata -kata "Hello Docker World." di halaman.
Meringkaskan
Di atas adalah aplikasi Spring Boot yang diperkenalkan kepada Anda oleh editor. Aplikasi Spring Boot dibangun, dijalankan, dan dilepaskan melalui Docker. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!