一 环境搭建
1 需要下载docker
2下载jdk1.8并配置环境变量
2.1下载所需版本的.tar.gz
安装包
Oracle官网即可下载,选择好对应版本,可以先下到主机,然后上传到虚拟机的Linux上。(注意:Oracle现在下载jdk需要注册登录,可以提前注册个账号)
2.2 Linux下创建目录用来存放jdk文件
一般在/usr/local/
下创建一个java目录来存放jdk
cd /usr/local
mkdir java
2.3 将在本地下载好的jdk压缩包上传到Linux的/usr/local/目录上
2.4 解压缩jkd安装包
接下来解压jdk-8u311-linux-x64.tar.gz压缩包
tar -zxvf jdk-8u311-linux-x64.tar.gz
通过ls命令可以看到生成了一个jdk1.8.0_311目录:
[root@localhost java]# ls
jdk1.8.0_311 jdk-8u311-linux-x64.tar.gz
2.5 配置java环境
使用vim/vi编辑profile文件
vim /etc/profile
在文件最下方添加以下配置:
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
保存并退出后刷新一下配置:
source /etc/profile
这样java环境就配置完成了
同样的,输入java -version可以查看到java的版本信息
3 安装Maven并配置
二 添加Docker支持
在 pom.xml中添加Docker镜像名称及添加 Docker插件。
在<properties> 标签里添加。
<properties>
<docker.image.prefix>springboot</docker.image.prefix>
</properties>
在<build> --> <plugins> 标签里添加
<!-- docker插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</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>
编写Dockerfile文件
在Springboot工程目录src/main下创建文件夹命名为docker文件,并在docker中创建Dockerfile 文件,用来说明如何来构建镜像。
FROM openjdk:8-jdk-alpine
VOLUME /tmp
# 需要修改docker-0.0.1-SNAPSHOT.jar为你的jar 例如 my-project-new-0.0.1-SNAPSHOT.jar 项目名-0.0.1-SNAPSHOT.jar
ADD docker-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
FROM指令指定一个已经存在的镜像,告诉Docker后续的指令都是在这个基础上进行的。例如:FROM java:8表示使用 Jdk1.8 环境为基础镜像进行构建镜像。
VOLUME ,VOLUME 指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
ADD ,拷贝文件并且重命名
ENTRYPOINT,为了缩短Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为ENTRYPOINT。
三、部署Spring Boot工程
将主机的项目代码拷贝服务器或虚拟机中,在虚拟机中进入项目路径。如编者是“/usr/local/projects/hellotest”.
在项目路径下运行终端,通过maven指令进行打包
mvn package
若报错中包含以下这一句
Unknown host maven.aliyun.com: 域名解析暂时失败 -> [Help 1]
则可以尝试如下修改
在终端输入指令vim /etc/resolv.conf然后加入nameserver 114.114.114.114
执行如下指令,运行项目
#要解压你的target文件下的jar包
java -jar target/hellotest-0.0.1-SNAPSHOT.jar
如出现以下界面,代表项目启动成功,说明环境配置没有问题,接下来可以使用Dockerfile构建镜像。
执行如下指令,构建Docker镜像
mvn package docker:build
可以看到docker镜像构建成功,仔细看日志,会发现四个步骤和Dockerfile中的指令是一一对应的。
使用docker images命令查看构建好的镜像:
运行docker镜像
docker run -d -p 8080:8080 -t springboot/hellotest
在虚拟机浏览器进行访问,可以看到返回结果,说明部署成功。