首页 游戏 软件 资讯 排行榜 专题
首页
编程语言
Ubuntu 系统安装与配置 Java 容器详细教程

Ubuntu 系统安装与配置 Java 容器详细教程

热心网友
52
转载
2026-05-06

Ubuntu 上使用 Ja va 容器的三种实用方式

在 Ubuntu 环境中部署 Ja va 应用,容器化无疑能带来环境一致性和部署便捷性。今天,我们就来聊聊三种最接地气的实现方式,你可以根据实际场景灵活选用。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

方式一:直接使用官方 OpenJDK 镜像运行 JAR

适用场景:追求快速启动、维护成本低的简单应用。

这种方式最直接,核心思路就是“拿来即用”。具体操作分三步走:

  1. 准备应用包:首先,确保你的 app.jar 文件已经放在项目目录下。
  2. 运行容器:通过一条命令,将 JAR 文件挂载到官方 OpenJDK 镜像中并启动。例如,将宿主机的 8080 端口映射到容器的 8080 端口:
    docker run -d --name myapp \
    -p 8080:8080 \
    -v "$PWD/app.jar:/app.jar:ro" \
    openjdk:11 \
    ja va -jar /app.jar
  3. 查看日志与进入容器:启动后,你可以随时查看运行日志,或者进入容器内部进行调试:
    docker logs -f myapp
    docker exec -it myapp bash

这里有个小技巧:如果对镜像体积敏感,可以考虑使用 openjdk:8-jre 这类只包含运行环境的标签,能有效减小镜像体积。总的来说,这个流程和在 Ubuntu 宿主机上直接使用 Docker 启动 JAR 包几乎一模一样,学习成本极低。

方式二:基于 Ubuntu 自制 JDK 镜像

适用场景:需要特定 JDK 版本、自定义系统工具链,或者需要从内部仓库拉取依赖。

当官方镜像无法满足定制化需求时,自己动手构建一个专属镜像就成了最佳选择。流程同样清晰:

  1. 编写 Dockerfile:在项目根目录创建一个 Dockerfile 文件。以下是一个安装 OpenJDK 11 的示例:
    FROM ubuntu:22.04
    RUN apt-get update && apt-get install -y --no-install-recommends \
        openjdk-11-jdk wget ca-certificates unzip && \
        rm -rf /var/lib/apt/lists/*
    ENV JA VA_HOME=/usr/lib/jvm/ja va-11-openjdk-amd64
    ENV PATH=$JA VA_HOME/bin:$PATH
    WORKDIR /app
    COPY app.jar /app/app.jar
    CMD ["ja va","-jar","/app/app.jar"]
  2. 构建并运行:使用 Docker 命令构建镜像并启动容器:
    docker build -t ubuntu-jdk11-app .
    docker run -d --name myapp -p 8080:8080 ubuntu-jdk11-app

如果需要使用 Oracle JDK,思路也是类似的:在 Dockerfile 中通过 wgetcurl 下载指定版本的安装包,并正确设置 JA VA_HOME 环境变量。当然,务必注意 Oracle 的许可证条款以及确保下载地址的有效性。

方式三:在运行的 Ubuntu 容器内安装 Ja va 并启动 JAR

适用场景:已经存在一个正在运行的 Ubuntu 容器,需要临时为其加入 Ja va 运行环境。

这种方式更像是一种“热插拔”操作,适合临时调试或对现有容器进行功能扩展。

  1. 进入容器并安装 OpenJDK:首先,连接到目标容器内部,然后像在普通 Ubuntu 系统上一样安装 Ja va:
    docker exec -it <容器名> bash
    apt-get update && apt-get install -y openjdk-11-jdk
    ja va -version
  2. 运行 JAR:安装完成后,就可以启动你的 Ja va 应用了。建议使用绝对路径,并将日志重定向到文件,方便后续排查:
    mkdir -p /app/logs
    nohup ja va -Dfile.encoding=UTF-8 -Xms512m -Xmx1024m \
    -jar /app/app.jar >/app/logs/app.log 2>&1 &

为了让操作更规范,你还可以在容器内准备一个启动脚本(例如 run.sh),以后台方式执行,这样既便于管理,也方便复用。

关键注意事项与最佳实践

无论选择哪种方式,下面这些实践要点都值得关注,它们能帮你避开不少“坑”。

  • 选择合适的基础镜像:生产环境优先考虑 openjdk:-jre 这类仅包含运行环境的镜像,体积更小,安全性更高。如果是需要编译或深度调试的场景,则可以使用完整的 openjdk: 或基于 Ubuntu 自制的镜像。
  • 时区与编码:这是容器化应用的一个经典问题。务必在 Dockerfile 中统一设置时区和字符编码,避免日志时间错乱和中文乱码:
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    ENV LANG=C.UTF-8
  • 日志与数据持久化:务必将容器内的日志目录(如 /app/logs)、配置文件以及重要数据目录,通过卷(Volume)挂载到宿主机。这样既能防止数据丢失,也极大方便了日志查看和问题排查。
  • 资源与健康检查:为容器设置合理的内存和 CPU 限制,防止单个应用耗尽主机资源。同时,配置健康检查探针,让编排工具(如 Docker Compose, Kubernetes)能够感知应用状态,提升整体稳定性。
  • 最小权限原则:尽量避免使用 –privileged=true 这种赋予容器全部权限的危险操作。应该按需授予特定能力,例如使用 –cap-add 参数,严格遵守最小权限原则,这是保障容器安全的重要防线。
来源:https://www.yisu.com/ask/27021299.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

如何解决 Ubuntu 系统中找不到 php-fpm.conf 的问题
编程语言
如何解决 Ubuntu 系统中找不到 php-fpm.conf 的问题

Ubuntu 系统 php-fpm conf 配置文件找不到?完整解决方案 在 Ubuntu 21 10 或更高版本中部署 Nginx + PHP FastCGI 环境时,如需配置 log_limit 等 PHP-FPM 专属参数,必须明确安装 php*-fpm 软件包。仅安装 PHP CGI 或

热心网友
05.06
PHP错误日志在Ubuntu中如何查看
编程语言
PHP错误日志在Ubuntu中如何查看

在 Ubuntu 系统中定位与查看 PHP 错误日志的完整指南 当 PHP 应用在 Ubuntu 服务器上出现异常时,错误日志是进行故障诊断的首要依据。准确找到并高效分析日志内容,能极大提升问题排查效率。本指南将详细介绍在 Ubuntu 系统中定位和查看 PHP 错误日志的多种方法。 第一步:启动终

热心网友
05.05
Ubuntu Python 安装过程中常见问题
编程语言
Ubuntu Python 安装过程中常见问题

Ubuntu 上安装 Python 的常见问题与对策 在 Ubuntu 上配置 Python 环境,看似简单,实则暗藏玄机。从版本选择、依赖安装到环境隔离,每一步都可能遇到意想不到的“坑”。别担心,这份指南将带你系统性地梳理常见问题,并提供经过验证的解决方案。 一、安装前准备与基础检查 动手之前,做

热心网友
05.05
php-fpm在ubuntu上如何启动停止
编程语言
php-fpm在ubuntu上如何启动停止

在Ubuntu上管理PHP-FPM服务 高效管理PHP-FPM服务是Linux服务器运维与Web开发环境配置中的核心技能。在Ubuntu系统中,您可以通过一系列简洁明了的命令行操作,轻松完成服务的启动、停止、重启与状态监控。本文将为您提供一份详尽的Ubuntu PHP-FPM服务管理指南。 1 启

热心网友
05.05
php-fpm错误日志ubuntu怎么查看
编程语言
php-fpm错误日志ubuntu怎么查看

在Ubuntu系统中定位与查看PHP-FPM错误日志的完整指南 当服务器出现PHP-FPM相关故障时,查看错误日志是诊断问题的首要且关键步骤。这些日志如同系统的“诊断报告”,详细记录了运行时发生的每一个异常、警告和错误信息。对于Ubuntu系统的用户而言,掌握快速定位并解读这些日志的方法,是高效运维

热心网友
05.05

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

H3C路由器管理界面证书错误解决办法指南
电脑教程
H3C路由器管理界面证书错误解决办法指南

H3C路由器登录管理界面提示证书错误,本质是浏览器与设备间SSL TLS安全握手未通过验证,属常见且可快速处置的技术现象。 遇到H3C路由器管理界面弹出“证书错误”的警告,你先别慌。这本质上不是什么大故障,而是浏览器与你的路由器之间在进行安全“握手”时,验证流程没走通。这在设备圈子里其实挺常见,尤其

热心网友
05.06
针式打印机加墨粉是否会影响机器寿命解析
电脑教程
针式打印机加墨粉是否会影响机器寿命解析

针式打印机本身不使用墨粉,而是依靠色带击打完成打印,因此不存在“加墨粉”这一操作,更谈不上墨粉对寿命的影响。所谓“给针打加墨粉”的说法,实为混淆了针式打印机与激光打印机的核心成像原理——前者依赖物理撞击使色带染料转印,后者才通过静电吸附墨粉并经高温定影。权威行业资料显示,针式打印机的使用寿命主要取决

热心网友
05.06
针式打印机能否加注墨粉使用指南
电脑教程
针式打印机能否加注墨粉使用指南

针式打印机不能加墨粉,它使用的是物理击打式打印原理,依靠色带盒中的油墨浸润织物带实现字符转印。 这事儿其实很好理解。针式打印机和办公室里常见的激光打印机,完全是两套“武功路数”。后者依赖碳粉在感光鼓上成像,再经过热压定影,过程充满了静电与高温的精密配合。而针式打印机呢?它的核心耗材体系自始至终都围绕

热心网友
05.06
苏泊尔电磁炉定时设置操作步骤在哪找
电脑教程
苏泊尔电磁炉定时设置操作步骤在哪找

苏泊尔电磁炉的定时功能通常集成在面板主控区,通过“定时”专用按键一键调出 想给炖汤定个时,或者让火锅到点自动关机?这个操作其实就藏在面板的按键区里。苏泊尔电磁炉大多设有一个独立的“定时”键,位置通常在功能键组的右侧或者数字键的上方,图标很好认,不是沙漏就是个小时钟。轻轻一按,配合旁边的“加”和“减”

热心网友
05.06
5G信号究竟差在哪 揭秘高端手机频段覆盖真相
电脑教程
5G信号究竟差在哪 揭秘高端手机频段覆盖真相

高端手机5G频段覆盖差异,核心在于对n28与n79等关键频段的支持完整性 说到高端手机的5G体验,一个常被忽略但至关重要的差异,就藏在那些看似枯燥的频段编号里。尤其是n28(700MHz)和n79(4 9GHz)这两个关键频段,它们的支持是否完整,直接决定了手机信号是“真全能”还是“有短板”。低频段

热心网友
05.06