Docker是一个开源的应用容器引擎,这里就不多介绍了,总之它非常强大,使用过的人都对它赞不绝口。我们平常在处理应用时,通常需要先搭建相关环境,然后再启动应用并进行配置。这意味着我们需要在本地、测试和生产环境中重复进行这些操作,效率自然会降低,让人感到烦躁。但如果使用Docker呢?我们只需构建一次镜像,随后在不同的环境中只需拉取这个镜像并启动即可,简单快捷吧?而且,如果结合CI/CD(持续集成和持续部署),那就更加方便了。只需将代码提交到Git,其余的打包、编译、测试和部署的工作都会自动完成,大大提升了我们的生产力。言归正传,本期实战我们重点研究如何使用Docker构建Spring Boot应用,至于CI/CD的部分,留到下次再讨论。首先,请注意,Docker仅支持CentOS 7及以上的系统,如果你的系统版本较低,请及时升级。在这里,我使用的是CentOS 7 x64,并且将采用IDEA来快速构建一个Spring Boot应用。@RestController
public class HelloController {
@RequestMapping("/hello")
public Object hello() {
return "hello World!!!";
}
}
首先,我们需要创建一个名为docker的文件夹,并在其中放置一个Dockerfile来进行构建。在docker文件夹内,添加已经打包好的jar文件,确保该文件夹中只包含Dockerfile和需要打包的jar文件。
FROM openjdk:8u181-jdk-alpine
MAINTAINER Noisky <noisky@ffis.me>
VOLUME /tmp
ADD demo-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
docker build -t springdemo:v1 .
-t 参数是指定此镜像的名称
在安装并启动Docker后,我们将开始制作Spring Boot镜像。进入docker目录(使用cd命令),然后运行以下命令以开始构建镜像。请注意,命令末尾的.表示当前目录,即构建镜像的上下文路径。当你看到“successfully”提示时,表示构建已成功完成。这时,可以使用docker images命令查看已构建的镜像。docker run -d -p 8188:8180 --name springdemo springdemo:v1
-d 参数是让容器后台运行
-p 是做端口映射,此时将服务器中的8188端口映射到容器中的8080(项目中端口配置的是8080)端口
{
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
-webkit-tap-highlight-color: transparent;
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
用户代理样式表
script {
display: none;
}
@media (prefers-color-scheme: dark) {
body {
background-color: #35363a;
color: #f0f0f0;
}
}