如今,基于 Spring Boot 构建 Docker 镜像的方式有很多种,例如
- Cloud Native Buildpacks(Spring Boot 2.3+ 版本开始支持)
- Google 的 jib-maven-plugin
- fabric8 和 spotify 的 docker-maven-plugin
以上几种方式基本都是采用各自的 Maven 插件,将仓库配置在 Maven 的 pom.xml 文件里的
- DockerHub 官方公共仓库(DockerHub 官方公共仓库国内访问速度堪忧,不推荐)
- 阿里云镜像仓库(需要在阿里云登录账号自行创建仓库)
- 自建私有镜像仓库
本文不采用以上任何一种方式,打算采用最原始的办法,自己写 Dockerfile,手动打包。然后使用 idea 的 Docker 与 SSH 远程连接功能,远程构建并启动容器。具体过程如下。
条件准备- IDEA:版本越新越好
- ams-0.0.1-SNAPSHOT.jar:一个集成了 Swagger 的 SpringBoot 演示项目。使用 maven clean package 打成的 jar 包,默认生成在 /target 目录下,将其拷贝到 /resources/static 目录下
- Dockerfile:自己手动编写,就放在 /resources/static 目录下
- 一台装有 Docker 的 CentOS,系统版本 7+。本文里其 ip 为 192.168.62.128
其实有很多种方式,最直接的直接见下图
这里选择 SSH 选项,然后直接选择上文配置好的装有 Docker 的主机即可。
在 /resources/static 下新建 Dockerfile 文件,编写
# 基础镜像 FROM openjdk # 作者信息 LABEL maintainer="2466267753@qq.com" # 开放端口 EXPOSE 8081 # 将 /target 目录下的 ams-0.0.1-SNAPSHOT.jar 复制到 docker 中,并重命名为 ams.jar ADD ams-0.0.1-SNAPSHOT.jar ams.jar # 容器执行命令 ENTRYPOINT ["java", "-jar", "ams.jar"]运行 Dockerfile 文件
在 IDEA 打开写好的 Dockerfile 文件,可以看到左上角有运行标志,直接点击运行
然后可以看到与在 CentOS 上构建时一致的构建日志。可以看到图片右边上方有很多选项:
- 【日志】可以看到 jar 启动日志
- 【属性】可以看到镜像 ID、容器 ID、还可以修改容器名称
- 【环境变量】即容器内的环境变量
- 【端口绑定】可以设置容器端口与宿主机的端口映射,上文 Dockerfile 我们在容器里暴露了 8081 端口,我们映射到宿主机的 18081,点击保存。然后在浏览器输入 http://192.168.45.128:18081/swagger-ui.html 即可打开项目的 swagger 接口文档页面
- 【卷绑定】可以指定主机与容器的路径挂载
- 【文件】容器内的文件目录
到此,项目已经成功部署到 CentOS 的 Docker 上。可以使用 docker ps 查看,确实正在运行。
在上图也可以看到,左侧树形菜单区域,有对容器的管理。相当于点点鼠标,就替代了在 CentOS 命令行下一行一行命令的书写。
对于 IDEA 里的 SSH 配置与使用、IDEA 里的 Docker 的可视化 *** 作还是很方便的,这个“语法糖”确实很甜。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)