[TOC]
一、Docker鏡像制作介紹
Docker是一個具有社區(qū)性的Linux容器管理工具集岁经,它允許用戶發(fā)布鏡像或者使用其他開發(fā)者發(fā)布的鏡像。Docker鏡像本質(zhì)上是一個進程的運行環(huán)境。在這篇guide中,我們將構建一個運行Spring Boot應用程序的鏡像杜耙。
二、鏡像打包前提條件
1.鏡像打包條件
要完全構建一個可用的SpringBoot Docker鏡像拂盯,需要滿足一下條件:
1.打包環(huán)境已經(jīng)Docker服務,可通過一下命令查看docker環(huán)境和狀態(tài):
docker info # docker環(huán)境信息
docker version # docker版本信息
本例是在win10安裝docker服務记靡。
2.配置docker一些參數(shù)和設置
- 配置鏡像加速谈竿,通過阿里云docker地址:https://dev.aliyun.com/search.html
訪問管理中心,查看自己的鏡像地址:
image
復制鏡像加速地址摸吠,打開docker 設置菜單 settings
image
在Daemon菜單空凸,打開Advaced滑塊,將自己的加速地址填入寸痢。 -
配置普通參數(shù)信息呀洲,代開端口2375
在General菜單,打開2375選項啼止,如圖所示:
image -
配置鏡像存儲目錄:
避免C盤系統(tǒng)盤過度占用道逗,更改鏡像存放目錄,如圖所示:
image
三献烦、打包鏡像
1.增加DockerFile文件
SpringBoot項目結構如下:
2.配置內(nèi)容
Dockerfile 文件內(nèi)容如下:
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD yxy-pretreatment.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
現(xiàn)將內(nèi)容解釋如下:
第一行增加了SpringBoot運行的JDK環(huán)境滓窍,我們增加了一個VOLUME指向”/tmp”,因為那是Spring Boot應用程序為Tomcat創(chuàng)建的默認工作目錄巩那。作用是在你的主機”/var/lib/docker”目錄下創(chuàng)建一個臨時的文件吏夯,并且鏈接到容器中的”/tmp”目錄此蜈。對于簡單程序這一步是可選的,但是對于其他想要真實寫入文件系統(tǒng)的Spring Boot應用程序又是必選的噪生。
第三行裆赵,yxy-pretreatment.jar為你SpringBoot打包最終的成包名稱,別名為app.jar
第四行,ENTRYPOINT 執(zhí)行項目 app.jar跺嗽。為了縮短 Tomcat 啟動時間战授,添加一個系統(tǒng)屬性指向 “/dev/urandom” 作為 Entropy Source
3.Pom增加docker插件
修改SpirngBoot項目的Pom文件,增加docker集成插件抛蚁,如下圖所示:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
4.進行docker鏡像構建
項目文件夾下陈醒,利用mvn命令進行鏡像構建:
執(zhí)行構建命令:
mvn clean package docker:build
如圖所示構建成功了。
四瞧甩、運行鏡像
現(xiàn)在我們把鏡像通過容器實例跑起來钉跷。
執(zhí)行如下命令:
docker run -d -p 8081:881 yxy-pretreatment/ctyxy-pretreatment
截圖所示: