Rumah >Java >javaTutorial >Gunakan Docker dan Spring Boot untuk mencapai penggunaan pantas dan pengembangan aplikasi mendatar
Gunakan Docker dan Spring Boot untuk mencapai penggunaan pantas dan pengembangan aplikasi mendatar
Dengan pembangunan pengkomputeran awan dan teknologi kontena, semakin banyak perusahaan mula menggunakan Docker untuk menggunakan dan mengurus aplikasi. Docker dicirikan sebagai ringan, sangat mudah alih, dan berkeupayaan untuk penggunaan dan pengembangan yang pantas, manakala Spring Boot ialah rangka kerja untuk membina aplikasi Java dan menyediakan cara untuk memudahkan pembangunan. Artikel ini akan memperkenalkan cara menggabungkan Docker dan Spring Boot untuk mencapai penggunaan pantas dan pengembangan aplikasi mendatar, dan menyediakan contoh kod khusus.
1. Konsep dan penggunaan Docker
Docker ialah teknologi kontena yang boleh membungkus aplikasi dan persekitaran bergantungnya ke dalam bekas, membolehkan aplikasi digunakan dengan cepat, dipindahkan dan dikongsi dalam persekitaran yang berbeza.
Pertama sekali, kami perlu memasang Docker Anda boleh pergi ke tapak web rasmi Docker untuk memuat turun pakej pemasangan yang sepadan dan memasangnya mengikut dokumentasi rasmi.
Imej Docker ialah asas bekas Docker dan bentuk pembungkusan aplikasi. Kita boleh menggunakan Dockerfile untuk menentukan proses pembinaan imej. Berikut ialah contoh fail Docker yang mudah:
FROM openjdk:11 VOLUME /tmp ARG JAR_FILE COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]
Contoh ini menggunakan OpenJDK 11 yang disediakan secara rasmi sebagai imej asas, menyalin pakej balang aplikasi ke dalam bekas dan menentukan arahan permulaan melalui arahan ENTRYPOINT.
Dalam direktori di mana Fail Docker terletak, laksanakan arahan berikut untuk membina imej Docker:
docker build -t my-app .
Antaranya, my-app
ialah nama imej, yang boleh diubah suai mengikut situasi sebenar. my-app
是镜像的名称,可以根据实际情况进行修改。
构建完镜像后,我们可以使用以下命令来运行Docker容器:
docker run -d -p 8080:8080 my-app
其中,-d
参数表示以后台模式运行容器,-p
参数表示将主机的8080端口映射到容器的8080端口,my-app
是镜像的名称。
二、Spring Boot应用的快速部署
Spring Boot是一种快速开发框架,使用它可以快速构建独立的、基于Spring的应用程序。
首先,我们需要创建一个Spring Boot应用。可以使用Spring Initializr(https://start.spring.io/)来生成一个基本的Spring Boot项目。
在生成的项目中,我们可以编写自己的业务逻辑。这里以一个简单的RESTful接口为例,代码如下:
@RestController public class HelloController { @GetMapping("/hello") public String hello() { return "Hello, Docker!"; } }
在项目的根目录下,执行以下命令来打包成可执行的jar包:
./mvnw clean package
其中,./mvnw
是用于执行Maven命令的包装脚本,clean package
是Maven的命令,用于清理、编译和打包项目。
在项目的根目录下,创建一个名为Dockerfile
的文件,并将以下内容复制进去:
FROM openjdk:11 VOLUME /tmp ARG JAR_FILE COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]
在项目的根目录下,执行以下命令来构建Docker镜像:
docker build -t my-app .
其中,my-app
是镜像的名称,可以根据实际情况进行修改。
构建完镜像后,我们可以使用以下命令来运行Docker容器:
docker run -d -p 8080:8080 my-app
其中,-d
参数表示以后台模式运行容器,-p
参数表示将主机的8080端口映射到容器的8080端口,my-app
是镜像的名称。
通过访问http://localhost:8080/hello
,我们可以看到返回的内容为Hello, Docker!
,表示Spring Boot应用已成功部署。
三、应用的水平扩展
Docker的另一个优势是可以很方便地进行应用的水平扩展,以满足高并发的需求。
Docker Compose是一个用于定义和运行多个Docker容器的工具。我们可以使用Docker Compose来管理应用的多个实例。
首先,我们需要创建一个名为docker-compose.yml
的文件,并将以下内容复制进去:
version: '3' services: app: image: my-app ports: - "8080:8080" environment: - SPRING_PROFILES_ACTIVE=dev1 app2: image: my-app ports: - "8081:8080" environment: - SPRING_PROFILES_ACTIVE=dev2
上述配置文件定义了两个服务,app
和app2
,分别对应两个应用实例。我们可以通过设置SPRING_PROFILES_ACTIVE
环境变量来指定应用的配置环境。
在配置文件所在的目录下,执行以下命令来启动应用实例:
docker-compose up -d
其中,-d
参数表示以后台模式运行容器。
通过访问http://localhost:8080/hello
和http://localhost:8081/hello
,我们可以看到返回的内容仍然为Hello, Docker!
-d
parameter menunjukkan mod latar belakang Jalankan bekas Parameter -p
menunjukkan bahawa port 8080 hos dipetakan ke port 8080 bekas itu daripada imej itu. 🎜🎜2. Penggunaan pantas aplikasi Spring Boot🎜🎜Spring Boot ialah rangka kerja pembangunan pesat yang boleh digunakan untuk membina aplikasi bebas berasaskan Spring. 🎜🎜🎜Buat aplikasi Spring Boot🎜🎜🎜Mula-mula, kita perlu mencipta aplikasi Spring Boot. Anda boleh menggunakan Spring Initializr (https://start.spring.io/) untuk menjana projek asas Spring Boot. 🎜🎜🎜Tulis logik aplikasi🎜🎜🎜Dalam projek yang dihasilkan, kita boleh menulis logik perniagaan kita sendiri. Berikut ialah antara muka RESTful yang mudah sebagai contoh Kodnya adalah seperti berikut: 🎜rrreee🎜🎜Pakkannya ke dalam pakej balang boleh laku🎜🎜🎜Dalam direktori akar projek, laksanakan arahan berikut untuk membungkusnya ke dalam pakej balang boleh laku : 🎜rrreee🎜di mana , ./mvnw
ialah skrip pembungkusan yang digunakan untuk melaksanakan arahan Maven, dan pakej bersih
ialah perintah Maven yang digunakan untuk membersihkan, menyusun dan membungkus projek. 🎜Dockerfile
dan salin kandungan berikut ke dalamnya: 🎜rrreeeapl saya
ialah nama imej, yang boleh berdasarkan keadaan sebenar Situasi diubah suai. 🎜-d
parameter menunjukkan mod latar belakang Jalankan bekas Parameter -p
menunjukkan bahawa port 8080 hos dipetakan ke port 8080 bekas itu daripada imej itu. 🎜🎜Dengan mengakses http://localhost:8080/hello
, kita dapat melihat bahawa kandungan yang dikembalikan ialah Hello, Docker!
, menunjukkan bahawa aplikasi Spring Boot telah berjaya dikerahkan. 🎜🎜3. Pengembangan aplikasi secara mendatar🎜🎜Satu lagi kelebihan Docker ialah ia boleh mengembangkan aplikasi secara mendatar dengan mudah untuk memenuhi keperluan serentak yang tinggi. 🎜🎜🎜Menggunakan Docker Compose🎜🎜🎜Docker Compose ialah alat untuk mentakrif dan menjalankan berbilang bekas Docker. Kita boleh menggunakan Docker Compose untuk mengurus berbilang contoh aplikasi. 🎜🎜Mula-mula, kita perlu mencipta fail bernama docker-compose.yml
dan menyalin kandungan berikut ke dalamnya: 🎜rrreee🎜Fail konfigurasi di atas mentakrifkan dua perkhidmatan, app code> dan <code>app2
masing-masing sepadan dengan dua contoh aplikasi. Kami boleh menentukan persekitaran konfigurasi aplikasi dengan menetapkan pembolehubah persekitaran SPRING_PROFILES_ACTIVE
. 🎜🎜🎜Mulakan contoh aplikasi🎜🎜🎜Dalam direktori tempat fail konfigurasi terletak, laksanakan arahan berikut untuk memulakan contoh aplikasi: 🎜rrreee🎜Antaranya, parameter -d
menunjukkan menjalankan bekas dalam mod latar belakang. 🎜🎜Dengan mengakses http://localhost:8080/hello
dan http://localhost:8081/hello
, kita dapat melihat bahawa kandungan yang dikembalikan masih Helo, Docker!
, menunjukkan bahawa kedua-dua tika aplikasi telah berjaya dimulakan. 🎜Dengan menggunakan Docker dan Spring Boot, kami boleh mencapai penggunaan pantas dan pengembangan aplikasi mendatar. Melalui teknologi kontena Docker, kami boleh membungkus aplikasi dan persekitaran bergantungnya ke dalam bekas untuk mencapai penempatan dan pemindahan merentas platform. Menggunakan Spring Boot, kami boleh membina rangka aplikasi dengan cepat dan memudahkan pembangunan. Saya harap artikel ini akan membantu anda memahami dan menggunakan Docker dan Spring Boot.
Atas ialah kandungan terperinci Gunakan Docker dan Spring Boot untuk mencapai penggunaan pantas dan pengembangan aplikasi mendatar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!