把Java程序部署到本地Docker

一:clean && install程序

install之后会在target中生成jar包        

二:准备三个文件

(1)其中Dockerfile主要起到配置作用:

# 基础镜像
FROM openjdk:17-jdk-slim
# 作者
MAINTAINER "××××"
# 配置
ENV PARAMS=""
# 时区
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 添加应用
ADD target/*****.jar /*****.jar
## 在镜像运行为容器后执行的命令
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /*****.jar $PARAMS"]

(2)执行build.sh的命令

docker build -f "F:\work\...\Dockerfile" -t ×××/你想要的名字(想要在Docker中image的名字) .

其中 Dockerfile就是第一步的,这里可以写绝对路径。

请注意:该命令最后一个.不要删除!(Docker 会将这个路径下的所有文件和目录打包发送给 Docker 引擎,只有这个上下文中的文件才能被 Dockerfile 访问。)

这里需要注意的是在Dockerfile中的ADD这一行 target/*****.jar 这个jar包的路径是相对路径!不如你如果写 ADD F:/work/.../*****.jar会被 Docker 解释为 ./F:/work/.../*****.jar,这显然是不存在的路径。

这里如果出现错误jdk什么不能下载:可以试试在docker desktop的设置中->Docker Engine中把
"buildkit":改为false

执行之后就可以在本地的Docker看到你的程序出现了(打马赛克部分)

(3)执行start.sh命令

windows用户把他写成一行 可以在cmd中执行

docker run -p 8080:8080 \
--name ***** \
-d ×××/*****

运行之后 不用在IDEA中启动程序可以使用了服务了。。。

### 将Java应用程序打包并运行在Docker容器内的方法 #### 准备工作 为了使Java应用程序能够在Docker容器中顺利运行,需先准备好项目的可执行文件——通常是`.jar`形式的包。对于Spring Boot项目而言,可以通过Maven或Gradle构建得到目标JAR文件[^4]。 #### 创建Dockerfile 定义一个名为`Dockerfile`的文字档来描述如何建立包含该Java应用在内的镜像。此文档应位于项目根目录下,并至少包含如下指令: ```dockerfile FROM openjdk:8-jdk-alpine // 使用轻量化版本的基础映像 VOLUME /tmp // 定义挂载点(如果必要) COPY target/myapp.jar app.jar // 复制编译后的JAR至容器内指定位置 ENTRYPOINT ["java","-jar","/app.jar"] // 设置启动命令 ``` 上述脚本指定了以OpenJDK 8为基础环境,并将本地构建好的`myapp.jar`复制到新创建的容器里,在容器启动时自动执行`java -jar /app.jar`这条命令来加载Java程序[^2]。 #### 构建Docker镜像 当一切准备就绪之后,打开终端窗口进入含有`Dockerfile`的那个文件夹路径之下,输入下面的命令来进行实际的镜像组装过程: ```bash docker build -t my-java-app . ``` 这里`my-java-app`代表自定义的名字用于识别所生成的新镜像;而`.`则表明要读取当前目录下的配置信息去完成整个流程[^5]。 #### 运行Docker容器 一旦成功建立了所需的镜像,则可通过下列方式将其激活成为一个独立运作的服务实例: ```bash docker run --name some-name -d -p hostPort:containerPort my-java-app ``` 其中`some-name`是给即将诞生出来的进程赋予的一个易于辨识的身份标签;`hostPort`和`containerPort`分别对应宿主机对外开放监听端口以及内部服务暴露的具体数值;最后部分即为之前命名过的那个静态资源库名称[^1]。 #### 查看与管理已部署的应用 为了让开发者能够更好地掌握正在线上的业务状况,可以利用一些辅助工具如`docker ps`查看所有处于活跃状态中的单元列表,或是借助于`docker logs containerID`获取特定对象的日志记录以便排查可能出现的问题[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值