使用 Maven 插件 jib 将 SpringBoot Demo 项目打包成docker镜像,推送到阿里云容器镜像服务仓库,在客户端使用docker拉取镜像并运行Demo项目
前置条件
开通阿里云容器镜像服务,个人实例免费
0:在产品与服务列表找到容器镜像服务
1:创建个人实例
2:进入个人实例
可以看到个人版的容器镜像服务对仓库数量和命名空间有一定的数量限制,根据左边导航菜单可以进入镜像仓库、命名空间和创建访问凭证等;概述面板有个人实例的公网地址,下文会用到
3:创建命名空间
建议开启自动创建仓库开关,开启后,可以在控制台仓库不存在的情况下,直接推送,系统会自动创建对应的仓库;注意仓库类型,可以选择公开或者私有
4:设置访问凭证
可以设置固定密码作为访问凭证
创建项目
使用 SpringBoot 快速构建 Demo 项目
0:创建项目
1:选择依赖
SpringBoot 版本使用2.5.4,勾选 Spring Web 依赖,点击 Finish 完成创建
2:整体结构
3:开始项目
在项目pom.xml文件中加入 Maven jib 插件,并配置自己的镜像仓库信息,账号是阿里云登录账号,密码为上文设置的固定密码
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<from>
<image>openjdk:alpine</image>
</from>
<to>
<!--个人实例的公网地址+命名空间+仓库名称,注意修改!!!-->
<image>registry.cn-hangzhou.aliyuncs.com/liuuuu/${project.artifactId}</image>
<tags>
<tag>${project.version}</tag>
</tags>
<auth>
<username>账号</username>
<password>密码</password>
</auth>
</to>
</configuration>
</plugin>
创建 demo 测试 api,之后部署成功后可以通过 http://ip:port/demo 进行访问
/**
* @author liujiazhong
*/
@RestController
@SpringBootApplication
public class DemoDockerApplication {
public static void main(String[] args) {
SpringApplication.run(DemoDockerApplication.class, args);
}
@GetMapping("demo")
public String demo() {
return "hello docker !";
}
}
端口配置 8085,至此 Demo 项目准备完成
构建镜像
执行成功
双击进行构建
构建成功
查看镜像
在镜像仓库里找到 demo 仓库,点击进入
在镜像版本中可以看到刚刚最新提交的版本
运行服务
0:拉取镜像
# 拉取刚刚推送到仓库的最新镜像
docker pull registry.cn-hangzhou.aliyuncs.com/liuuuu/dem
1:运行
docker run -d -p 8085:8085 --rm --name demo registry.cn-hangzhou.aliyuncs.com/liuuuu/demo
2:验证
在浏览器输入http://ip:8085/demo,出现hello docker !