docker打包springboot镜像,并运行

docker打包springboot镜像,并不是简单的将springboot项目的jar包上传容器里,然后启动。这个操作很简单,但是如果我每次要查看容器中的日志就需要每次都进入容器内部进行查看,这就非常麻烦了。

本文用一个简单的springboot项目举例子,来完成docker打包springboot镜像,并运行。

构建容器服务一共可以分为四步:

1,编写Dockerfile

2,docker build 构建镜像(根据Dockerfile构建)

3,docker run 镜像

4,docker push 镜像

第一步就是编写Dockerfile,Dockerfile是我们要打docker镜像的脚手架,也就是说我们的docker镜像就是根据Dockerfile来打的。(名称必须是这个,注意大小写)

简单的Dockerfile文件内容:

复制代码
FROM  openjdk:8
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]

Dockerfile文件内容解释:

FROM openjdk:8 指定基础镜像,用于构建当前镜像的基础。也就是说我们要打镜像的基础包,我们程序运行所需要的环境。Springboot运行需要java8,那就需要再jdk8的基础上构建自己的镜像。

COPY *.jar /app.jar 将文件从主机复制到镜像中。我们的镜像当中需要包含的文件,比如说需要jar包,就需要将jar包放到镜像中去,需要其他文件,比如说某些静态资源,我们同样可以使用COPY放到镜像当中去。要注意第一个参数为宿主机的地址,后面的参数为镜像地址。宿主机的地址可以使用相对路径,即./*.jar。

CMD "--server.port=8080"

ENTRYPOINT "java","-jar","/app.jar"

设置容器的启动命令,也就是我们docker run时,容器里面所执行的命令。

EXPOSE 8080 指定容器对外暴露的端口,即docker容器启动后,通过什么端口访问它呢?一般情况下都配置成我们的tomcat端口。

第二步就是docker build 构建镜像(根据Dockerfile构建)。

将我们的Dockerfile文件编写完成后,和需要打成镜像的jar包放到同一目录下。

然后将springboot项目打jar包:

找到该jar包,并上传Linux:

然后执行命令:

复制代码
docker build -t  test:1.0.1 .

即镜像包的名称为test,版本号为1.0.1。如果不写后面的版本号,则版本号默认为latest。

执行结果:

执行命令启动镜像:

查看运行的服务:

查看日志:

启动成功!

相关推荐
Sagittarius_A*25 分钟前
Docker:渗透前置容器化核心基础
运维·安全·docker·容器
阿米亚波2 小时前
【EVE-NG 实战】防火墙基础(VLAN · VRRP · NAT · ACL · 静态路由)
运维·网络·笔记·网络协议·计算机网络·网络安全·运维开发
日取其半万世不竭2 小时前
云服务器迁移怎么少停机?DNS 切换前后的完整清单
运维·服务器
FREEDOM_X3 小时前
Linux 多线程编程——总结
java·linux·运维·ubuntu
名字还没想好☜3 小时前
Docker 多阶段构建:把镜像从 1.2GB 砍到 15MB
运维·docker·容器·多阶段构建·镜像优化
祸心依旧3 小时前
Visual Studio 五月更新 —— 计划、评审、优化
运维·人工智能·visual studio
Web4Browser3 小时前
Headless 浏览器自动化适合哪些任务?巡检、截图和提交动作要分级
运维·前端·自动化
難釋懷3 小时前
Nginx浏览器强制缓存
运维·nginx·缓存
花和满楼4 小时前
K8s 1.36 ImageVolume GA:OCI 镜像不再只能跑容器
java·容器·kubernetes
大博士.J4 小时前
视频号主体违规与认证上限?正确的解决方式
运维·python·自动化