- 用Docker部署Springboot 项目
- 一、环境搭建
- 1.ubuntu环境下docker安装
- 安装完成后启动Docker服务,并设置为开机自启动
- 查看版本信息
- 2.安装Maven和配置阿里云镜像
- 下载Maven
- 解压和移动
- 配置环境变量
- 查看版本信息
- 配置maven的阿里云镜像
- 二、Spring Boot项目添加Docker支持
- 1.新建Spring Boot工程——hellotest
- 2.添加Docker支持
- 3.编写Dockerfile文件
- 三、部署Spring Boot工程
- 在项目路径下运行终端,通过maven指令进行打包
- 执行如下指令,运行项目
- 执行如下指令,构建Docker镜像
- 使用`docker images`命令查看构建好的镜像:
本文使用Docker部署Spring Boot项目。部署之前需要环境中已经安装Docker和Maven(用于打包),所以本文先进行安装Docker和Maven;接着搭建一个Spring Boot项目,使其支持Docker部署;最后进行部署和测试。 一、环境搭建 1.ubuntu环境下docker安装
参考教程:https://www.cnblogs.com/blog-rui/p/11244023.html
- 安装完成后启动Docker服务,并设置为开机自启动
使用下列命令:
systemctl start docker.service systemctl enable docker.service
- 查看版本信息
输入docker version,返回版本信息表明Docker安装成功。
2.安装Maven和配置阿里云镜像- 下载Maven
在某个文件夹打开终端,执行以下命令行 wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
- 解压和移动
tar vxf apache-maven-3.5.4-bin.tar.gz //下面的“/usr/local/maven3”为想要移动的目录,这里的移动是将“apache-maven-3.5.4”文件夹里的东西放到“/usr/local/maven3”目录下 mv apache-maven-3.5.4 /usr/local/maven3
- 配置环境变量
打开环境变量vim /etc/profile,在最下面添加如下内容:
MAVEN_HOME=/usr/local/maven3 export MAVEN_HOME export PATH=${PATH}:${MAVEN_HOME}/bin
保存并退出::wq
刷新环境变量的配置使其生效:source /etc/profile
- 查看版本信息
使用命令mvn -v进行查看
[root@localhost ~]# mvn -v Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00) Maven home: /usr/local/maven3 Java version: 1.8.0_211, vendor: Oracle Corporation, runtime: /usr/local/java/jdk1.8.0_211/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
- 配置maven的阿里云镜像
切换到maven安装目录的配置文件(/usr/lcoal/maven3/conf)下面,打开settings.xml文件,在
二、Spring Boot项目添加Docker支持 1.新建Spring Boot工程——hellotestalimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central nexus-aliyun central Nexus aliyun http://maven.aliyun.com/nexus/content/repositories/central
启动类如下:
@RestController @SpringBootApplication public class HellotestApplication { public static void main(String[] args) { SpringApplication.run(HellotestApplication.class, args); } @RequestMapping("/") public String hello(){ return "Hello,Springboot with Docker!"; } }2.添加Docker支持
在 pom.xml中添加Docker镜像名称及添加 Docker插件。
- 在
标签里添加。
springboot
- 在
--> 标签里添加
3.编写Dockerfile文件com.spotify docker-maven-plugin1.0.0 ${docker.image.prefix}/${project.artifactId} src/main/docker / ${project.build.directory} ${project.build.finalName}.jar
在Springboot工程目录src/main下创建Directory命名为dockerDockerfile 文件,Dockerfile 文件用来说明如何来构建镜像。
FROM openjdk:8-jdk-alpine VOLUME /tmp 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。
将主机的项目代码拷贝服务器或虚拟机中,在虚拟机中进入项目路径。如编者是“/usr/local/projects/hellotest”.
- 在项目路径下运行终端,通过maven指令进行打包
mvn package
若报错中包含以下这一句
Unknown host maven.aliyun.com: 域名解析暂时失败 -> [Help 1]
则可以尝试如下修改
在终端输入指令vim /etc/resolv.conf然后加入nameserver 114.114.114.114
- 执行如下指令,运行项目
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
- 在虚拟机浏览器进行访问,可以看到返回结果,说明部署成功。
部分内容参考博客:https://www.cnblogs.com/sgh1023/p/11079003.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)