express

Express Docker 镜像

以无根用户(rootless)和无发行版(distroless)方式运行Express应用程序,提供默认Express类,具备安全、轻量、自动更新及漏洞扫描等特性。

下载次数: 0状态:社区镜像维护者:11notes仓库类型:镜像最近更新:
下载命令
点击查看

EXPRESS

以无根用户和无发行版方式运行Express应用程序

概述 📖

此镜像能做什么? 该镜像以无发行版(distroless)和无根用户(rootless)方式运行Express应用程序,并在/Express.js提供默认Express类。

核心价值 💶

为何选择此镜像而非其他现有镜像? 原因如下:

  • 以https://github.com/11notes/RTFM/blob/main/linux/container/image/rootless.md身份(1000:1000)运行
  • 基于https://github.com/11notes/RTFM/blob/main/linux/container/image/distroless.md构建,无shell环境
  • 通过CI/CD自动更新至最新版本
  • 内置健康检查
  • 以只读模式运行
  • 发布前后自动扫描漏洞(CVEs)
  • 通过安全且固定的CI/CD流程构建
  • 镜像体积极小

若您重视安全性、简洁性及极致优化,此镜像可能适合您。

对比 🏁

以下是本镜像与其他常用或原始镜像的对比:

镜像磁盘大小默认用户/组https://github.com/11notes/RTFM/blob/main/linux/container/image/distroless.md支持的架构
11notes/express:5.1.030MB1000:1000✅amd64, arm64, armv7

卷 📁

  • /express/var - Express应用程序目录

示例 🧬

main.js /express/var/main.js

js
const Express = require('/Express');
const app = new Express();
app.express.get('/', (req, res, next) => {
  res.status(200).json({hello:"world!"});
});
app.start();

Docker Compose 配置 ✂️

yaml
name: "express"
services:
  express:
    image: "11notes/express:5.1.0"
    environment:
      TZ: "Europe/Zurich"
    ports:
      - "3000:3000/tcp"
    restart: "always"

如需修改容器默认UID/GID,请参考https://github.com/11notes/RTFM/blob/main/linux/container/image/11notes/how-to.changeUIDGID.md#change-uidgid-the-correct-way(我的https://github.com/11notes/RTFM)。

默认设置 🗃️

参数值描述
userdocker用户名
uid1000用户ID
gid1000组ID
home/expressdocker用户的主目录

环境变量 📝

参数说明默认值
TZ时区
DEBUG启用容器镜像及应用调试模式(若支持)
EXPRESS_PORTExpress服务端口3000
EXPRESS_MAX_BODY_SIZE/Express.js允许的最大请求体大小16MB

主要标签 🏷️

以下是镜像的主要标签,同时提供每个提交及其sha256短哈希值对应的标签。

  • https://hub.docker.com/r/11notes/express/tags?name=5.1.0

为何没有latest标签?如何获取更新?

我认为:latest标签存在风险。我曾多次对镜像引入破坏性变更,可能导致部分用户环境异常。若不想手动更新至最新https://semver.org/,可使用语义化版本的短标签:例如用```:5```或```:5.1```替代```:5.1.0```。这些标签会随新版本自动更新,效果类似```:latest```但固定在主版本或次版本级别。

若仍需获取最新版本,可使用:rolling标签,但请注意:此标签会即时获取最新版本,可能包含破坏性变更或安全问题,风险自负!

镜像仓库 ☁️

docker pull docker.xuanyuan.run/11notes/express:5.1.0
docker pull ***-ghcr.xuanyuan.run/11notes/express:5.1.0
docker pull ***-quay.xuanyuan.run/11notes/express:5.1.0

源码 💾

  • https://github.com/11notes/docker-EXPRESS

基础镜像 🏛️

此镜像不基于其他镜像,以https://hub.docker.com/_/scratch为空起始层,包含以下无发行版层:

  • https://github.com/11notes/docker-distroless/blob/master/arch.dockerfile - 包含用户、时区及根CA证书,无其他内容
  • https://github.com/11notes/docker-distroless/blob/master/localhealth.dockerfile - 仅在127.0.0.1执行HTTP请求的应用
  • https://github.com/11notes/docker-distroless/blob/master/node.dockerfile - JavaScript应用运行时

构建工具 🧰

  • https://www.npmjs.com/package/express

通用提示 📌

  • 使用反向代理(如Traefik、Nginx、HAproxy)终止TLS并保护端点
  • 使用Let’s Encrypt DNS-01挑战获取有效的SSL证书

ElevenNotes™️

此镜像仅供参考,使用风险自负。更新镜像版本前请务必备份数据。查看https://github.com/11notes/docker-express/releases了解破坏性变更。使用中遇到问题请提交https://github.com/11notes/docker-express/issues,如有疑问或建议请创建https://github.com/11notes/docker-express/discussions而非issue。我的其他仓库可在https://github.com/11notes?tab=repositories查看。

创建于 13.10.2025, 21:48:13 (CET)

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 express 镜像标签

docker pull docker.xuanyuan.run/11notes/express:<标签>

DockerHub 原生拉取命令

docker pull 11notes/express:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告