
jumpserver/openjdk问题反馈地址:
[***]
支持的架构:(更多信息)
amd64, arm64, loong64
描述来源:
文档仓库的 openjdk/ 目录 (历史记录)
OpenJDK(Open Java Development Kit)是 Java 平台标准版(Java SE)的免费开源实现。自版本 7 起,OpenJDK 成为 Java SE 的官方参考实现。
***.org/wiki/OpenJDK
Java 是 Oracle 及其关联公司的注册商标。
!logo
使用此镜像最直接的方式是将 Java 容器同时用作构建和运行环境。在 Dockerfile 中,可按以下方式编写以编译和运行项目:
dockerfileFROM jumpserver/openjdk:11-slim-buster COPY . /usr/src/myapp WORKDIR /usr/src/myapp RUN javac Main.java CMD ["java", "Main"]
然后构建并运行 Docker 镜像:
bash$ docker build -t my-java-app . $ docker run -it --rm --name my-running-app my-java-app
有时可能不适合在容器内运行应用,仅需编译。可通过以下命令在 Docker 实例内编译(但不运行)应用:
bash$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openjdk:11-slim-buster javac Main.java
此命令会将当前目录作为卷挂载到容器,设置工作目录为该卷,并执行 javac Main.java 命令,编译 Main.java 并输出 Main.class 文件。
JVM 启动时会尝试检测可用 CPU 核心数和内存,以调整内部参数(如垃圾回收线程数)。当容器运行时限制了 CPU/内存,JVM 使用的标准系统 API 可能返回主机级别的值,导致旧版 JVM 出现 CPU 过度使用或内存分配错误。
在 Linux 容器中,OpenJDK 8 及更高版本可正确检测容器限制的 CPU 核心数和可用内存,且默认启用此功能。
在 Windows Server(非 Hyper-V)容器中,CPU 核心数限制不生效(被主机计算服务忽略)。需手动设置限制,启动 JVM 命令如下:
bash$ start /b /wait /affinity 0x3 path/to/java.exe ...
示例中,CPU 亲和性十六进制掩码 0x3 将 JVM 限制为 2 个 CPU 核心。
Windows Server 容器支持内存限制,但 JVM 目前无法检测。为防止过度内存分配,需指定 -XX:MaxRAM=... 选项,其值不超过容器内存限制。
部分 shell(特别是 Alpine Linux 中包含的 BusyBox /bin/sh)不支持名称含句点的环境变量(技术上不符合 POSIX 标准),会剥离此类变量(而 Bash 会保留)。若应用需要此类环境变量,可直接使用 CMD ["java", ...](不通过 shell),或显式安装并使用 Bash 而非 /bin/sh。
jumpserver/openjdk 镜像有多种版本,适用于不同场景。
这是默认镜像。若不确定需求,建议使用此版本。它既可作为临时容器(挂载源代码并启动容器运行应用),也可作为构建其他镜像的基础。
部分标签可能包含 bookworm 或 bullseye 等名称,这些是 Debian 的发行版代号,指示镜像基于哪个 Debian 版本。若需在镜像中安装额外软件包,建议明确指定 Debian 版本,以减少 Debian 新版本发布时的中断。
查看此镜像包含软件的 许可证信息。
与所有 Docker 镜像一样,此镜像可能包含其他软件,这些软件可能采用其他许可证(如基础发行版中的 Bash 等,以及主要软件的直接或间接依赖)。
部分可自动检测的额外许可证信息可在 repo-info 仓库的 openjdk/ 目录 中找到。
对于任何预构建镜像的使用,镜像用户有责任确保对镜像中所有软件的使用符合相关许可证要求。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务