使用Docker部署Spring Boot項(xiàng)目的實(shí)現(xiàn)步驟
創(chuàng)建一個(gè)簡(jiǎn)單的springboot項(xiàng)目
一、在 pom.xml 中 ,使用 Spring Boot 2.2.10 相關(guān)依賴
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.10.RELEASE</version> </parent>
二、添加 web 和測(cè)試依賴
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
三、創(chuàng)建一個(gè) DockerController,在其中有一個(gè)hello()方法,訪問時(shí)返回:hello,nihao
@RestController public class DockerController { @RequestMapping("/hello") public String hello() { return "hello,nihao"; } }
四、啟動(dòng)類
@SpringBootApplication public class DockerApplication { public static void main(String[] args) { SpringApplication.run(DockerApplication.class, args); } }
添加完畢后啟動(dòng)項(xiàng)目,啟動(dòng)成功后瀏覽器訪問:http://localhost:8080/hello,頁面返回:hello,nihao,說明 Spring Boot 項(xiàng)目配置正常。
使用 Docker 部署 Spring Boot 項(xiàng)目
一、將項(xiàng)目打成jar包,拷貝到服務(wù)器上,測(cè)試一下
[root@jiangwang springbootDemo]# ls demo-0.0.1-SNAPSHOT.jar Dockerfile [root@jiangwang springbootDemo]# java -jar demo-0.0.1-SNAPSHOT.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.2.10.RELEASE) 2021-03-18 14:49:18.241 INFO 12886 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication v0.0.1-SNAPSHOT on jiangwang with PID 12886 (/home/springbootDemo/demo-0.0.1-SNAPSHOT.jar started by root in /home/springbootDemo) 2021-03-18 14:49:18.244 INFO 12886 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default 2021-03-18 14:49:19.924 INFO 12886 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2021-03-18 14:49:19.938 INFO 12886 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2021-03-18 14:49:19.938 INFO 12886 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.38] 2021-03-18 14:49:20.013 INFO 12886 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2021-03-18 14:49:20.014 INFO 12886 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1657 ms 2021-03-18 14:49:20.321 INFO 12886 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2021-03-18 14:49:20.520 INFO 12886 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2021-03-18 14:49:20.523 INFO 12886 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 2.899 seconds (JVM running for 3.369)
二、看到 Spring Boot 的啟動(dòng)日志后表明環(huán)境配置沒有問題,編輯Dockerfile文件:
FROM java:8 COPY *.jar /app.jar CMD ["--server.port=8080"] EXPOSE 8080 ENTRYPOINT ["java","-jar","/app.jar"]
三、接下來我們使用 Dockerfile 構(gòu)建鏡像:
## 構(gòu)建鏡像 [root@jiangwang springbootDemo]# docker build -t springboot-demo . Sending build context to Docker daemon 17.72MB Step 1/5 : FROM java:8 ---> d23bdf5b1b1b Step 2/5 : COPY *.jar /app.jar ---> f4d6aeabd3f0 Step 3/5 : CMD ["--server.port=8080"] ---> Running in a6311f7cf7b5 Removing intermediate container a6311f7cf7b5 ---> d8117b10cefa Step 4/5 : EXPOSE 8080 ---> Running in ae180be637bb Removing intermediate container ae180be637bb ---> f16702c75ab6 Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"] ---> Running in fafa00625666 Removing intermediate container fafa00625666 ---> d4c3e225699d Successfully built d4c3e225699d Successfully tagged springboot-demo:latest
四、運(yùn)行鏡像:
# 運(yùn)行鏡像 [root@jiangwang springbootDemo]# docker run -d -p 39005:8080 --name my-springboot springboot-demo 7ac35852cb91cb10612cd28fdbe7c50c7c59df4cccf19b2f1d30dcabbfe501f4 [root@jiangwang springbootDemo]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7ac35852cb91 springboot-demo "java -jar /app.jar …" 33 seconds ago Up 32 seconds 0.0.0.0:39005->8080/tcp my-springboot [root@jiangwang springbootDemo]# curl localhost:39005/hello hello,nihao[root@jiangwang springbootDemo]#
五、瀏覽器輸入外網(wǎng)網(wǎng)址訪問一下:
這里你的外網(wǎng)39005端口首先要開放了,可以去安全組設(shè)置
說明使用 Docker 部署 Spring Boot 項(xiàng)目成功!
到此這篇關(guān)于使用Docker部署Spring Boot項(xiàng)目的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Docker部署Spring Boot內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker容器之間數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)
本文主要介紹了Docker容器之間數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn),文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03云原生Docker創(chuàng)建并進(jìn)入mysql容器的全過程
前面我們已經(jīng)安裝好了Docker,也簡(jiǎn)單了解了Docker,下面這篇文章主要給大家介紹了關(guān)于云原生Docker創(chuàng)建并進(jìn)入mysql容器的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02docker image tag為什么出現(xiàn)none的原因及解決
當(dāng)我們使用docker加載新的鏡像時(shí),有時(shí)候會(huì)發(fā)現(xiàn)Repository和Tag名稱都為none的情況,這通常是由于沒有指定正確的標(biāo)簽名稱或者倉庫名稱所導(dǎo)致的,本文主要介紹了docker image tag為什么出現(xiàn)none的原因及解決,感興趣的可以了解一下2023-10-10docker搭建dnsmasq服務(wù)的實(shí)現(xiàn)
本文將指導(dǎo)讀者如何使用Docker搭建DNSmasq服務(wù),通過簡(jiǎn)單的步驟和詳細(xì)的說明,幫助讀者快速在Docker環(huán)境中部署DNSmasq,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01Docker?Desktop常見的幾種啟動(dòng)失敗問題解決方法
使用Docker Desktop 可以很方便的啟用 Kubernetes,下面這篇文章主要給大家介紹了關(guān)于Docker?Desktop常見的幾種啟動(dòng)失敗問題解決方法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09Centos8.3、docker部署springboot項(xiàng)目實(shí)戰(zhàn)案例分析
這篇文章主要介紹了Centos8.3、docker部署springboot項(xiàng)目實(shí)戰(zhàn)記錄,包括docker安裝,開啟docker遠(yuǎn)程訪問端口的方法及配置idea docker環(huán)境的方法,需要的朋友可以參考下2021-06-06Docker在Windows環(huán)境的搭建和使用詳解
這篇文章主要介紹了Docker在Windows環(huán)境的搭建和使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03