Docker技术发展为微服务提供便利环境,使用Docker部署Spring Boot项目是简单易操作。步骤如下:
一.安装Docker
在Docker Store下载Mac版本,链接如下:
https://store.docker.com/editions/community/docker-ce-desktop-mac
安装成功,在顶部的菜单栏出现如下图标:二、搭建Spring Boot项目
在网上有很多文章说明怎样搭建Spring Boot项目,在这里不详细说了,请自行查找相关资料哦。
在演示Spring boot项目例子,添加DemoController,代码如下:
package com.gloria.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class DemoController {
@ResponseBody
@RequestMapping(value="")
public String heloWord() {
return "HelloWord";
}
}
添加后启动Spring Boot项目,启动成功后使用浏览器访问http://localhost:8080/,在页面看到打印:
HelloWorld
三、Spring Boot 项目添加 Docker 支持
- 在pom.xml的properties中添加Docker镜像名称,如下所示
<properties>
<docker.image.prefix>springboot</docker.image.prefix>
</properties>
- 在pom.xml的plugins添加构建Docker插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- Docker maven plugin -->
<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>
</plugins>
</build>
四、创建Dockerfile文件
在src/main/docker
目录下创建Dockerfile文件
FROM java:8
EXPOSE 8080
VOLUME /tmp
ADD demo-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" ]
- FROM 表示要构建的镜像基于哪个镜像,java:8表示使用jdk8环境为基础镜像
- EXPOSE 告诉Docker这个容器在运行时会监听哪些端口。
- VOLUME 指向了一个
/tmp
的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp
作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker
目录下创建一个临时文件并把它链接到容器中的/tmp
目录 - ADD 表示把文件拷入docker ,并改名成 app.jar
- ENTRYPOINT 表示使用指定命令在镜像运行时执行,启动jar。
五、构建镜像
-
测试打的jar是否正常
在 Terminal终端进入项目路径,输入如下命令:
mvn package
启动项目
java -jar demo-0.0.1-SNAPSHOT.jar
看到 Spring Boot 的启动日志后,在浏览器访问http://localhost:8080/,在页面看到打印
HelloWorld
表明环境配置没有问题。
-
构建镜像
使用Dockerfileg构建镜像,进入项目目录执行如下命令:
mvn package docker:build
第一次会启动慢一些,如果看到如下信息说明构建镜像成功:
-
使用
docker images
命令查看构建好镜像
六、运行镜像
- 运行镜像
springboot/demo是我们构建好的镜像,运行镜像命令:
docker run -p 8080:8080 -t springboot/demo
- 查看正在运行镜像
使用docker ps
查看正在运行的镜像:
可以看到我们构建的容器正在运行,使用浏览器访问:http://localhost:8080/,返回:
Hello World
-
停止镜像
使用docker stop CONTAINER ID
停止镜像,上图所示CONTAINER ID是:6d2f2ddf460c,所以停止镜像命令:docker stop 6d2f2ddf460c
使用docker部署Spring Boot项目是比较简单。如果哪里写得不合理,请指正哦。