[TOC]
一、Docker镜像制作介绍
DockerDocker是一个具有社區性的Linux容器管理工具集,它允許用户发布镜像或者使用其他开发者发布的镜像。Docker镜像本質上是一个進程的运行環境。在這篇guide中,我們将构建一个運行Spring Boot应用程序的鏡像。
二、镜像打包前提条件
1.镜像打包条件
要完全构建一个可用的SpringBoot Docker镜像,需要满足一下条件:
1.打包环境已经Docker服务,可通过一下命令查看docker环境和状态:
docker info # docker环境信息
docker version # docker版本信息
本例是在win10安装docker服务。
2.配置docker一些参数和设置
- 配置镜像加速,通过阿里云docker地址:https://dev.aliyun.com/search.html
访问管理中心,查看自己的镜像地址:
image
复制镜像加速地址,打开docker 设置菜单 settings
image
在Daemon菜单,打开Advaced滑块,将自己的加速地址填入。 -
配置普通参数信息,代开端口2375
在General菜单,打开2375选项,如图所示:
image -
配置镜像存储目录:
避免C盘系统盘过度占用,更改镜像存放目录,如图所示:
image
三、打包镜像
1.增加DockerFile文件
SpringBoot项目结构如下:
image
2.配置内容
Dockerfile 文件内容如下:
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD yxy-pretreatment.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
现将内容解释如下:
第一行增加了SpringBoot运行的JDK环境,我们增加了一个VOLUME指向”/tmp”,因为那是Spring Boot应用程序为Tomcat创建的默认工作目录。作用是在你的主机”/var/lib/docker”目录下创建一个临时的文件,并且链接到容器中的”/tmp”目录。对于简单程序这一步是可选的,但是对于其他想要真实写入文件系统的Spring Boot应用程序又是必选的。
第三行,yxy-pretreatment.jar为你SpringBoot打包最终的成包名称,别名为app.jar
第四行,ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/urandom” 作为 Entropy Source
3.Pom增加docker插件
修改SpirngBoot项目的Pom文件,增加docker集成插件,如下图所示:
image
<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命令进行镜像构建:
image
执行构建命令:
mvn clean package docker:build
构建完成
如图所示构建成功了。
镜像列表
四、运行镜像
现在我们把镜像通过容器实例跑起来。
执行如下命令:
docker run -d -p 8081:881 yxy-pretreatment/ctyxy-pretreatment
截图所示:
image
网友评论