摘要:是一個開源的應用容器引擎,基于語言并遵從協議開源。準備工作環境環境或不要用對一無所知的看教程。創建一個工程引入的起步依賴,創建一個將工程容器化有一個簡單的文件作為指定鏡像的圖層。說明的工程已部署。停止鏡像刪除鏡像參考資料源碼下載
這篇文篇介紹,怎么為 springboot程序構建一個docker鏡像。docker 是一個開源的應用容器引擎,基于 Go 語言 并遵從Apache2.0協議開源。Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。
準備工作環境:
linux環境或mac,不要用windows jdk 8 maven 3.0 docker
對docker一無所知的看docker教程。
創建一個springboot工程引入web的起步依賴,創建一個 Controler:
@SpringBootApplication @RestController public class SpringbootWithDockerApplication { @RequestMapping("/") public String home() { return "Hello Docker World"; } public static void main(String[] args) { SpringApplication.run(SpringbootWithDockerApplication.class, args); } }將springboot工程容器化
Docker有一個簡單的dockerfile文件作為指定鏡像的圖層。讓我們先創建一個 dockerFile文件:
src/main/docker/Dockerfile:
FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD springboot-with-docker-0.0.1-SNAPSHOT.jar app.jar RUN sh -c "touch /app.jar" ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
我們通過maven 構建docker鏡像。
在maven的pom目錄,加上docker鏡像構建的插件
springio com.spotify docker-maven-plugin 0.4.11 ${docker.image.prefix}/${project.artifactId} src/main/docker / ${project.build.directory} ${project.build.finalName}.jar
注意:${docker.image.prefix} 為你在 docker官方倉庫的用戶名,如果你不需要上傳鏡像,隨便填。
通過maven 命令:
第一步:mvn clean
第二步: mvn package docker:bulid ,如下:
Step 2/6 : VOLUME /tmp —> Running in a98be3878053 —> 8286e98b54c5 Removing intermediate container a98be3878053 Step 3/6 : ADD springboot-with-docker-0.0.1-SNAPSHOT.jar app.jar —> c6ce13e50bbd Removing intermediate container a303a3058869 Step 4/6 : RUN sh -c ‘touch /app.jar’ —> Running in cf231afe700e —> 9a0ec8936c00 Removing intermediate container cf231afe700e Step 5/6 : ENV JAVA_OPTS “” —> Running in e192597fc881 —> 2cb0d73bbdb0 Removing intermediate container e192597fc881 Step 6/6 : ENTRYPOINT sh -c java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar —> Running in ab85f53fcdd8 —> 60fdb5c61692 Removing intermediate container ab85f53fcdd8 Successfully built 60fdb5c61692 [INFO] Built forezp/springboot-with-docker [INFO] ———————————————————————— [INFO] BUILD SUCCESS [INFO] ———————————————————————— [INFO] Total time: 01:45 min [INFO] Finished at: 2017-04-19T05:37:44-07:00 [INFO] Final Memory: 19M/48M [INFO] ————————————————————————
鏡像構建成功。查看鏡像:
docker images
顯示:
forezp/springboot-with-docker latest 60fdb5c61692 About a minute ago 195 MB
啟動鏡像:
$ docker run -p 8080:8080 -t forezp/springboot-with-docker
打開瀏覽器訪問 localhost:8080;瀏覽器顯示:Hello Docker World。
說明docker 的springboot工程已部署。
停止鏡像:
docker stop 60fdb5c61692
刪除鏡像:
docker rm 60fdb5c61692參考資料
https://docs.docker.com/engin...
http://www.runoob.com/docker/...
源碼下載https://github.com/forezp/Spr...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71468.html
摘要:環境依賴創建一個新的工程,在其文件加入依賴創建一個消息接收者類,它是一個普通的類,需要注入到中。 這篇文章主要講述如何在springboot中用reids實現消息隊列。 準備階段 安裝redis,可參考我的另一篇文章,5分鐘帶你入門Redis。 java 1.8 maven 3.0 idea 環境依賴 創建一個新的springboot工程,在其pom文件,加入spring-boot-...
摘要:全稱通過注解或描述對象關系表的映射關系,并將運行期的實體對象持久化到數據庫中。從功能上來說,就是功能的一個子集。通過請求測試,代碼已經全部通過測試。 JPA全稱Java Persistence API.JPA通過JDK 5.0注解或XML描述對象-關系表的映射關系,并將運行期的實體對象持久化到數據庫中。 JPA 的目標之一是制定一個可以由很多供應商實現的API,并且開發人員可以編碼來實...
摘要:在使用上述模板,默認從下加載。介紹是現代化服務器端的模板引擎,不同與其它幾種模板的是的語法更加接近,并且具有很高的擴展性。特點支持無網絡環境下運行,由于它支持原型,然后在標簽里增加額外的屬性來達到模板數據的展示方式。 SpringBoot 是為了簡化 Spring 應用的創建、運行、調試、部署等一系列問題而誕生的產物,自動裝配的特性讓我們可以更好的關注業務本身而不是外部的XML配置,...
閱讀 2964·2023-04-26 02:04
閱讀 1278·2021-11-04 16:07
閱讀 3699·2021-09-22 15:09
閱讀 678·2019-08-30 15:54
閱讀 1899·2019-08-29 14:11
閱讀 2525·2019-08-26 12:19
閱讀 2255·2019-08-26 12:00
閱讀 752·2019-08-26 10:27