You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Debian的Docker容器运行Jar包及Docker-Compose配置方法

没问题!我来一步步给你讲清楚怎么实现这个需求——用Debian做容器的基础操作系统,启动时自动运行你的helloworld.jar,再配上对应的docker-compose.yml配置,轻松搞定~

第一步:编写Dockerfile

首先,你需要在和helloworld.jar同一个目录下创建一个Dockerfile文件,下面是完整的配置,我会逐行给你解释为什么这么写:

# 基于Debian官方的稳定版镜像(这里用bookworm,也就是Debian 12的slim轻量化版本)
FROM debian:bookworm-slim

# 更新系统包,安装和你的Jar包兼容的OpenJDK JRE
# 用headless版本是因为容器里不需要GUI,能大幅减小镜像体积
RUN apt-get update && \
    apt-get install -y openjdk-17-jre-headless && \
    # 清理apt缓存,避免镜像体积过大
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# 在容器里创建一个专门的工作目录,方便管理文件
WORKDIR /app

# 把本地的helloworld.jar复制到容器的工作目录中
COPY helloworld.jar .

# 设置容器启动时自动执行的命令,这样启动容器就会直接跑Jar包
CMD ["java", "-jar", "helloworld.jar"]

小贴士:如果你的Jar包需要特定版本的JDK/JRE,记得把openjdk-17-jre-headless换成对应的版本,比如Java 8就用openjdk-8-jre-headless。

第二步:编写docker-compose.yml

接下来,同样在这个目录下创建docker-compose.yml文件,配置如下:

version: '3.8'
services:
  helloworld-app:
    build: .  # 指定从当前目录的Dockerfile构建镜像
    container_name: helloworld-container  # 给容器起个好记的名字,方便后续操作
    restart: unless-stopped  # 可选配置:除非手动停止,否则容器意外退出后自动重启
    # 如果你的Jar包需要对外暴露端口(比如Web服务的8080端口),取消下面的注释
    # ports:
    #   - "8080:8080"
    # 如果需要把容器内的日志或数据挂载到本地目录,也可以加volumes(可选)
    # volumes:
    #   - ./app-logs:/app/logs
如何启动服务
  1. 确保helloworld.jar、Dockerfile、docker-compose.yml都在同一个目录下;
  2. 打开终端,进入这个目录,执行以下命令:
docker-compose up -d
  • -d参数让容器在后台运行,不会占用终端;
  • 如果后续修改了Dockerfile或者更新了Jar包,需要重新构建镜像的话,用docker-compose up -d --build;
  • 想查看Jar包的运行日志,执行docker logs helloworld-container或者docker-compose logs helloworld-app就行。

内容的提问来源于stack exchange,提问作者itsMe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:50:33