Docker将jar包装为Image并运行

参考资料:

参考课程:https://ke.gupaoedu.cn/play/288/5/37604?phaseId=6


准备材料:

1. 可运行且可访问的jar包

java 复制代码
@Controller
public class DockerController {

    @PostMapping("helloWorld")
    public ResponseEntity<String> helloWorld(){
        System.out.println("=====>helloWorld<=====");
        return new ResponseEntity<>("helloWorld",HttpStatus.OK);
    }
}

2. Docker环境


原理介绍

基于docker文件的分层(layer)概念

DockerFile可以通过程序,将很多层变成一个image

DockerFile 有自己的语法,可以参考docker-library中的文件,结合AI帮助来写


将Jar包打包为Image:

1. 执行如下命令,将项目打包成jar包

bash 复制代码
mvn clean package

2. 创建文件夹并上传文件

在linux服务器创建文件夹,并将打包好的jar包上传至文件夹中,比如 docker_helloWorld

bash 复制代码
mkdir docker_helloWorld

3. 创建dockerfile 编辑

使用命令,在文件夹中,创建Dockerfile,并编辑

bash 复制代码
vi Dockerfile

然后将下面内容粘贴进去(具体内容可以用AI进行解释)

bash 复制代码
FROM openjdk:8 
MAINTAINER peter2026 
LABEL name="dockerfile-demo" version="1.0" author="peter2026" 
COPY docker-hello-world-0.0.1-SNAPSHOT.jar dockerfile-image.jar 
CMD ["java","-jar","dockerfile-image.jar"]

4. 构建镜像

如果使用默认的dockerHub来获取openJDK的话,可能需要做一些代理或者加速服务,参考B站

如果还是不行的话,可以先把from语句的镜像拉取到本地,然后再构建

bash 复制代码
docker pull cf-workers-docker-io-6es.pages.dev/openjdk:8u102-jdk

执行如下语句进行构建(注意后面的一点,表示当前目录)

bash 复制代码
docker build -t my-docker-image .

然后执行docker images就可以看到构建好的镜像

5. 运行镜像

将构建好的镜像运行,执行下面命令

bash 复制代码
docker run -d --name my_container_01 -p 6666:8080 my-docker-image

上面是将container的8080端口映射到了Linux虚拟机的6666端口

执行下面命令查看运行的容器

bash 复制代码
docker ps

6. 访问运行的jar包

查看docker所在系统的IP

bash 复制代码
ip a

然后用PostMan进行访问即可,比如

192.168.124.128:6666/helloWorld

相关推荐
古法老登瞎折腾2 小时前
大数据智能运维实战(十一):运维 MCP 的工程化——权限、限流、审计与错误处理
java·大数据·运维·spring ai·mcp
琥珀.2 小时前
mysql中json数组转列表查询
linux·运维·服务器
dawnsky.liu3 小时前
在 RHEL 中使用 goose 实现远程主机管理
linux·运维·ai
Linux运维技术栈4 小时前
CVE-2026-91403 高危漏洞修复:Rocky Linux 9 多版本 JDK 环境清理实操
java·linux·运维
云上先途15 小时前
企业 AI 服务部署周期多久,会不会影响原有业务运转?
大数据·运维·人工智能
执伞人ONLY6 小时前
AI知识库自动化知识加工没做对,人工整理永远追不上知识产生
运维·人工智能·自动化
叼烟扛炮6 小时前
Linux 学习笔记(三十三):线程互斥——互斥锁(Mutex)与死锁
linux·运维·服务器·笔记·学习·1024程序员节
无足鸟ICT6 小时前
【RHCA+】who命令(查看已登陆用户)
linux·运维·服务器
RacentCLM7 小时前
证书即服务CaaS:从申请、续期到部署的自动化链路拆解
运维·数据库·自动化·ssl
注塑机数据采集联网7 小时前
注塑机生产管控MES系统应用
大数据·运维·服务器·人工智能·物联网