
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
维护者:
https://github.com/eclipse/jetty.docker
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile链接注意:本镜像描述长度超过Hub的25000字符限制,因此"支持的标签"列表已被精简。另请参阅 https://github.com/docker/hub-feedback/issues/238 和 https://github.com/docker/roadmap/issues/475%E3%80%82
提交issue的地址:
https://github.com/eclipse/jetty.docker/issues?q=
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/jetty/%E3%80%81https://hub.docker.com/r/arm64v8/jetty/
镜像 artifact 详情:
https://github.com/docker-library/repo-info/blob/master/repos/jetty (https://github.com/docker-library/repo-info/commits/master/repos/jetty)
(包含镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fjetty
https://github.com/docker-library/official-images/blob/master/library/jetty (https://github.com/docker-library/official-images/commits/master/library/jetty)
本描述的来源:
https://github.com/docker-library/docs/tree/master/jetty (https://github.com/docker-library/docs/commits/master/jetty)
Jetty是一个纯Java实现的HTTP(Web)服务器和Java Servlet容器。虽然Web服务器通常用于向用户提供文档,但Jetty现在常被用于机器间通信,通常在大型软件框架中。Jetty是Eclipse基金会旗下的免费开源项目。该Web服务器被用于Apache ActiveMQ、Alfresco、Apache Geronimo、Apache Maven、Apache Spark、Google App Engine、Eclipse、FUSE、***的Streaming API和Zimbra等产品中。Jetty也是Lift、Eucalyptus、Red5、Hadoop和I2P等开源项目的服务器。Jetty支持最新的Java Servlet API(含JSP支持)以及SPDY和WebSocket协议。
***.org/wiki/Jetty_(web_server)
!https://raw.githubusercontent.com/docker-library/docs/c14d620ba7dbd254b6a44f753ee1ba4e700906f0/jetty/logo.pngLogo © Eclipse Foundation
要在后台运行默认的Jetty服务器,使用以下命令:
console$ docker run -d jetty
可通过访问http://容器IP:8080或https://容器IP:8443/进行测试。要将Jetty服务器暴露给外部请求,使用端口映射:
console$ docker run -d -p 80:8080 -p 443:8443 jetty
这会将容器内的8080端口映射到主机的80端口,容器内的8443端口映射到主机的443端口。之后可通过http://主机IP或https://主机IP访问。
镜像中的默认Jetty环境变量如下:
JETTY_HOME = /usr/local/jetty JETTY_BASE = /var/lib/jetty TMPDIR = /tmp/jetty
Web应用可通过常规方式(WAR文件、解压的WAR目录或上下文XML文件)部署在/var/lib/jetty/webapps目录下。要将应用部署到/上下文,需使用名称ROOT.war、目录名ROOT或上下文文件ROOT.xml(不区分大小写)。
对于基于Jetty 7或Jetty 8的已终止支持(EOL)的旧镜像,请遵循Eclipse Wiki上的旧版说明,将应用部署到/usr/local/jetty/webapps而非/var/lib/jetty/webapps。
可通过运行--list-config选项查看Jetty服务器配置:
console$ docker run -d jetty --list-config
也可通过命令行传递配置参数和附加模块。例如:
console$ docker run -d jetty --module=jmx jetty.threadPool.maxThreads=500
要在派生的Docker镜像中更新服务器配置,可在Dockerfile中使用RUN命令启用附加模块:
DockerfileFROM jetty RUN java -jar "$JETTY_HOME/start.jar" --add-to-startd=jmx,stats
可通过编辑/var/lib/jetty/start.d/*.ini文件中的属性来配置模块,或通过删除该文件停用模块。
可通过向容器传递JAVA_OPTIONS环境变量设置JVM选项。例如,要将最大堆大小设置为1GB:
console$ docker run -e JAVA_OPTIONS="-Xmx1g" -d jetty
要以只读模式运行jetty容器,需让Docker将/tmp/jetty和/run/jetty目录创建为卷:
console$ docker run -d --read-only -v /tmp/jetty -v /run/jetty jetty
由于容器是只读的,需通过-v /path/to/my/webapps:/var/lib/jetty/webapps挂载Web应用目录,或在派生镜像中填充/var/lib/jetty/webapps。
从9.3版本开始,Jetty内置HTTP/2支持。但由于实现HTTP/2所用的ALPN库可能存在许可兼容性问题,该模块默认未启用。要在派生的Dockerfile中为私人用途启用HTTP/2支持,可添加RUN命令启用http2模块并批准其许可:
DockerfileFROM jetty RUN java -jar $JETTY_HOME/start.jar --add-to-startd=http2 --approve-all-licenses
这会在$JETTY_BASE/start.d目录中添加http2.ini文件,并将所需的ALPN库下载到$JETTY_BASE/lib/alpn,从而启用HTTP/2。HTTP/2连接应通过常规HTTPS连接的端口(容器端口8443)进行。若要通过$JETTY_BASE/start.ini启用http2模块,将上述RUN命令中的--add-to-startd替换为--add-to-start即可。
默认情况下,本镜像以root用户启动,并使用Jetty的setuid模块在初始化后降权至jetty用户。JETTY_BASE目录(/var/lib/jetty)归jetty:jetty(uid 999,gid 999)所有。
若希望镜像直接以jetty用户而非root用户启动,可使用-u jetty参数:
console$ docker run -d -u jetty jetty
jetty镜像有多种版本,适用于不同场景:
jetty:<version>这是默认镜像。若不确定需求,建议使用此版本。它既可作为临时容器(挂载源代码并启动容器运行应用),也可作为构建其他镜像的基础。
jetty:<version>-alpine此镜像基于流行的Alpine Linux项目,源自https://hub.docker.com/_/alpine%E3%80%82Alpine Linux比大多数发行版基础镜像小得多(约5MB),因此生成的镜像通常更精简。
当最终镜像大小是首要考虑因素时,此变体非常有用。需注意的是,它使用musl libc而非glibc及相关库,因此软件可能因libc需求/假设的深度而遇到问题。有关可能出现的问题及使用Alpine镜像的优缺点比较,参见此Hacker News评论线程。
为最小化镜像大小,Alpine镜像通常不包含额外相关工具(如git或bash)。若以此镜像为基础,可在自己的Dockerfile中添加所需工具(若不熟悉,参见https://hub.docker.com/_/alpine/%E4%B8%AD%E7%9A%84%E5%AE%89%E8%A3%85%E7%A4%BA%E4%BE%8B%EF%BC%89%E3%80%82
查看本镜像中包含软件的许可信息。
与所有Docker镜像一样,本镜像可能包含其他许可下的软件(如基础发行版中的Bash等,以及主要软件的直接或间接依赖)。
可在https://github.com/docker-library/repo-info/tree/master/repos/jetty%E4%B8%AD%E6%89%BE%E5%88%B0%E4%B8%80%E4%BA%9B%E8%87%AA%E5%8A%A8%E6%A3%80%E6%B5%8B%E5%88%B0%E7%9A%84%E9%99%84%E5%8A%A0%E8%AE%B8%E5%8F%AF%E4%BF%A1%E6%81%AF%E3%80%82
对于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用均符合其中包含的所有软件的相关许可。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务