学习自b站狂神说Docker: https://www.bilibili.com/video/BV1og4y1q7M4/?spm_id_from=333.337.search-card.all.click
SpringBoot微服务打包Docker镜像
- 构架springboot项目
- 打包应用
- 编写dockerfile
- 构建镜像
- 发布运行
// 构建简单项目 8080端口自测成功
@RestController
public class HelloController {
@RequestMapping
public String hello(){
return "hello,hailong";
}
}
// 打包 单击Maven中Lifecycle中package选项 jar包在target路径下(show in explorer可直接打开路径)
// 在文件夹中用cmd命令行测试一下能否正常运行
java -jar demo-0.0.1-SNAPSHOT.jar
// 当jar包可用,我们需要将他发布到Dockerfile里面(需安装插件Docker),有了插件可以在Settings的Build中的Docker中连接远程的Docker仓库
// 右击项目生成file文件(起名为Dockerfile会高亮),进行编写
// 基础镜像是基于java8构建的
FROM java:8
// 将当前目录下的所有jar包都拷到项目下面(最后生成的应用)
// 服务器只发布jar包和dockerfile即可
COPY *.jar /app.jar
// 映射服务的地址
CMD ["--server.port=8080"]
// 暴露端口
EXPOSE 8080
// 执行命令 当前jar包的jar
ENTRYPOINT ["java","-jar","/app.jar"]
// home中创建idea目录 将jar包和dockerfile上传到idea中
[root@localhost home]# mkdir idea
[root@localhost idea]# rz
[root@localhost idea]# ls
demo-0.0.1-SNAPSHOT.jar Dockerfile
// 通过build构建镜像,将jar包装进去
[root@localhost idea]# docker build -t hailong6 .
[root@localhost idea]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hailong6 latest 2bcc908f0549 About a minute ago 660MB
// 启动镜像
[root@localhost idea]# docker run -d -P --name hailongplay hailong6
// 测试连接
[root@localhost idea]# curl localhost:32768
{"timestamp":"2023-10-25T12:33:39.236+00:00","status":404,"error":"Not Found","message":"","path":"/hello"}
// 访问地址的hello请求
[root@localhost idea]# curl localhost:32768/hello
hello,hailong