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

相关推荐
腾科IT教育20 小时前
Oracle认证怎么选?2026年OCP/OCM报考指南
linux·运维·华为认证·hcie·开闭原则·datacom
幸福指北21 小时前
🚀 开源了,一个人 + AI 肝出一个 AI 终端 | AShell 技术分享
运维·人工智能·ai·终端
肥胖小羊1 天前
微信社群自动化管理与防骚扰系统的设计与实现
运维·自动化
AI办公探索者1 天前
仓储物流AI任务执行的技术拆解:从WMS自动化到多设备协同的落地路径
运维·人工智能·ai·自动化
IT二叔1 天前
Kubernetes(K8s)-01-简介
云原生·容器·kubernetes
暖和_白开水1 天前
数据分析agent(十三_3):docker mysql容器镜像服务的异常错误
mysql·docker·容器
longerxin20201 天前
nano编辑器插入、编辑完整操作教程(Linux日志/配置专用)
linux·运维·编辑器
cesium vue1 天前
nginx 流媒体配置
运维·nginx
木心术11 天前
GitHub Actions自动化运维实战:从CI/CD到全链路DevOps
运维·自动化·github
糯米导航1 天前
实践教程|搭建电商 AI 无限画布,实现百款商品主图自动化批量生成
运维·人工智能·自动化