前言
实现Springboot项目打包为镜像推送到Docker远程仓库.
环境准备
1、Docker使用的Desktop Docker
2、Desktop Docker内登录远程Docker仓库
3、Springboot项目
项目简介
我用的项目是自己手写的一个简单的Springboot项目,项目结构如下:
本项目是一个很简单的HelloWorld项目,启动项目,在浏览器访问localhost:8080/hello返回你好!成功啦!
表示启动成功。
Controller
@RestController
public class HelloWorldController {
@RequestMapping("/hello")
public String hello(){
return "你好!成功啦!";
}
}
Dockerfile
# Docker image for springboot application
# VERSION 0.0.1
### 基础镜像,使用alpine操作系统,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9
#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp
#暴露8080端口
EXPOSE 8080
#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD target/*.jar /app.jar
#启动容器时的进程
ENTRYPOINT ["java","-jar","/app.jar"]
本地打包
package
使用idea自带的package将项目打成jar包
直接点击package 选项,可以直接在target文件夹里生成jar包。
打包镜像
进入项目根目录
执行下面的命令:
#不要漏了后面的 .
Docker build -t hello1.0 .
使用docker images
查看生成的镜像:
PUSH镜像
本地仓库生成镜像以后推送镜像到远程仓库(项目仓库)。
依次执行下面的命令👇🏻
1、登录自己的远程仓库
docker login
2、给镜像标记Tag,标注版本,比如我打成V1版本
docker tag hello1.0 lyzplus/springboot-hello1.0:v1
3、push镜像到容器里
docker push lyzplus/springboot-hello1.0:v1
验证
1、本地测试远程镜像是否可以正常启动
docker run --name hellodocker -p 8085:8080 lyzplus/springboot-hello1.0:v1
命令解释
:用于在容器中运行一个名为hellotest的容器。命令的作用是将容器的8080端口映射到主机的8085端口,并使用lyzplus/springboot-hello1.0镜像来创建容器。
浏览器显示你好!成功啦!
到此,一个Springboot项目成功的打包成镜像推送到远程镜像仓库并且能被正常使用并启动。
源码下载
带Jar包(不使用clear即可),无限速下载:
暂无评论内容