2.3Docker部署java工程

2.3Docker部署java工程

1.导入jar包
2.在Docker部署jdk(容器名为myjdk17)
3.修改jar包名
mv 原包名 新包名

image-20240328090440812

4. 配置启动脚本

Dockerfile是一个文本文件,其中包含了构建 Docker 镜像所需的一系列步骤和指令。通过编写 Dockerfile 文件,可以生成我们想要的镜像。基于JDK17镜像使用dockerfile自定义SpringBoot项目的镜像,然后使用该自定义镜像去创建并启动容器。

同目录路径下创建Dockerfile文件:

vim Dockerfile

写入如下内容:

# 指定基础镜像(jdk镜像名)
FROM myjdk17	
# 维护者信息
MAINTAINER hgh
# 定义匿名卷
VOLUME /tmp	
# 复制文件或修改名称(第一个jar包名为修改前的jar包名)
ADD forum-service.jar forum-service.jar
# 允许端口:SpringBoot项目端口
EXPOSE 8888
# 入口,此为修改后的jar包名
ENTRYPOINT ["java","-jar","/forum-service.jar"]
ENV TZ=Asia/Shanghai

FROM:指定基础镜像名称和版本,将打包的项目在该基础镜像上运行
LABEL:为镜像添加元数据,可以用于标识镜像的作者、版本、描述等信息(可忽略)
ENV:设置环境变量,可以在容器内部使用
WORKDIR:设置工作目录,用于指定容器内部的工作目录,后续的命令都将在该目录下执行
COPY:从本地复制文件至创建的镜像文件
RUN: 对创建的镜像使用的命令
CMD: 容器被创建启动时执行的命令

解释:VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。该步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
项目的 jar 文件作为 “forum-service.jar” 添加到容器的ENTRYPOINT 执行项目forum-service.jar。

如果是第一次打包,它会自动下载java 8的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。

参考:https://blog.csdn.net/qq_37924905/article/details/113247060

5. 制作镜像(在dockerFile文件目录下运行)
docker build -t forum-service .

​ forum-service: 镜像名称(任意)

6. 查看镜像是否已经生成
docker images
7. 配置springboot项目,启动容器
docker run --restart=always -d -p 8888:8888 --name forum-server forum-server

-d 参数是让容器后台运行
-p 端口映射,此时将服务器中的8888端口映射到容器中的8888(项目中端口配置的是8888)端口

–name forum-service 容器名

forum-server 使用的images镜像

8. 查看一下是否已经启动
docker ps
9.查看容器日志
docker logs forum-service

最后就可以去测试了,地址如:http://47.xxx.15.23:8888/login

注意:一定不要忘了去云服务器上放行相应的端口

扩展

进入容器并执行命令

docker exec -it forum-service /bin/bas

容器重命名

docker rename [原名] [改名]

删除容器

docker stop [容器名]
docker rm [容器名]

删除镜像

docker rmi [镜像id前3位]

设置容器开机自启动

docker update --restart=always 容器名称
  • 26
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值