欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

云原生应用11:SpringBoot应用打包成docker镜像

程序员文章站 2022-04-18 16:43:12
...

本文将介绍SpringBoot开发的应用打包成docker镜像,然后运行镜像为容器

依赖Docker:docker安装
依赖MySql:

  • 下载mysql镜像,docker pull mysql:5.7.26
  • 运行为容器,设置数据存储到宿主机,root用户密码:docker run -d --name mysql -v /data/mysql:/var/lib/mysql --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.26

应用打包成docker镜像,使用Dockerfile文件,里面编写打包的指令,需要注意的是此应用用到了宿主机的目录存储文件

1.Dockerfile文件

把sisco.jar上传到服务器sisco目录,在sisco目录中创建Dockerfile文件,内容如下,依赖 openjdk 镜像,把当前目录的sisco.jar复制到镜像的/usr/目录中,定义一个PARAMS参数,运行镜像时添加自定义参数,如:-Dspring.profiles.active=default -DXms=300m 等

FROM openjdk:8-jdk-alpine
COPY ["sisco-0.0.1-SNAPSHOT.jar" , "/usr/"]
ENV PARAMS=""
ENTRYPOINT ["sh" , "-c" , "java $PARAMS  -jar /usr/sisco-0.0.1-SNAPSHOT.jar"]
2.打包成镜像

docker打包镜像有两种方式,1.使用docker commit,2.使用Dockerfile文件,本文使用Dockerfile文件
在sisco目录中,执行命令:

docker build -t sisco:v0.1 ./ 

使用docker images 查看镜像
云原生应用11:SpringBoot应用打包成docker镜像

3.运行为容器

sisco目录中内容如下,有Dockerfile文件,有sisco.jar,sisco应用上传的文件存放到web目录中
云原生应用11:SpringBoot应用打包成docker镜像
start_mysql.sh内容:docker run -d --name mysql -v /data/mysql:/var/lib/mysql --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.26
start.sh内容:docker run -d --name sisco --rm -v /home/sisco/web:/usr/web -p 8000:8080 -e PARAMS="-Dspring.profiles.active=prod -DXms=300m -DXmx=300m -Dsisco.config.filePath=usr/web/" sisco:v0.1

把运行mysql与运行sisco应用的命令放到对应的脚本文件中,只要执行:

  • 启动mysql:sh start_mysql.sh
  • 启动sisco:sh start.sh

start.sh的内容简单解释下:

  • docker run,运行容器
  • -d ,后台启动
  • –name ,设置容器的名称
  • –rm,容器停止时删除历史记录,否则通过sisco名称的容器还存在
  • -v,定义宿主机目录与容器的映射关系,容器中的程序操作 usr/web 目录就是在操作宿主机的 /home/sisco/web 目录
  • -p 8000:8080,宿主机8000端口绑定容器的8080端口
  • -e PARAMS,为Dockerfile中预留的参数,可指定运行java应用需要的参数
  • 最后为镜像名称为tag

查看运行中的容器,可看到容器绑定的端口
云原生应用11:SpringBoot应用打包成docker镜像
然后访问容器,http://192.168.68.134:8000
云原生应用11:SpringBoot应用打包成docker镜像

相关标签: kubernetes