
defra-docker-node 是一个Node.js开发父镜像,由DEFRA(英国环境、食品和农村事务部)维护,旨在为Node.js应用开发提供统一的基础开发环境。该镜像集成了标准化的Node.js运行时、开发工具链及配置模板,可作为各类Node.js项目的基础镜像,确保跨项目开发环境一致性,减少重复配置工作。
18-alpine、20-buster等).eslintrc.js、.prettierrc、.gitignore等),支持跨项目配置复用/app作为工作目录),避免权限问题FROM指令扩展功能通过Docker Hub或私有 registry 拉取镜像(具体地址需参考项目文档):
bashdocker pull defra/defra-docker-node:latest # 最新稳定版 # 或指定Node.js版本 docker pull defra/defra-docker-node:20-alpine
在项目Dockerfile中以该镜像为基础构建子镜像:
dockerfile# 从defra-docker-node继承基础环境 FROM defra/defra-docker-node:20-alpine # 设置工作目录(继承自父镜像,默认/app) WORKDIR /app # 复制项目依赖文件并安装依赖 COPY package.json package-lock.json ./ RUN npm ci # 使用package-lock.json安装精确依赖 # 复制项目源代码 COPY . . # 覆盖默认启动命令(根据项目需求调整) CMD ["npm", "run", "dev"]
支持通过环境变量自定义行为,常用变量如下:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
NODE_ENV | 运行环境(development/production) | development |
NPM_REGISTRY | npm镜像源地址 | https://registry.npmjs.org |
USER_ID | 容器内运行用户ID | 1000(非root用户) |
WORKDIR | 应用工作目录 | /app |
示例:通过环境变量修改npm镜像源
dockerfileFROM defra/defra-docker-node:20-alpine ENV NPM_REGISTRY=https://registry.npm.taobao.org RUN npm config set registry $NPM_REGISTRY
在docker-compose.yml中使用该镜像配置开发环境:
yamlversion: '3.8' services: app: build: context: . dockerfile: Dockerfile image: defra/defra-docker-node:20-alpine environment: - NODE_ENV=development - NPM_REGISTRY=https://registry.npmjs.org volumes: - ./:/app # 挂载本地代码,支持热重载 - node_modules:/app/node_modules # 持久化依赖目录 ports: - "3000:3000" # 映射应用端口 volumes: node_modules: # 定义匿名卷,避免本地依赖覆盖
如需覆盖父镜像默认配置(如ESLint规则),可在子项目中添加自定义配置文件,子镜像构建时会自动覆盖:
bash# 项目根目录添加自定义.eslintrc.js echo "module.exports = { extends: ['defra', 'prettier'] }" > .eslintrc.js
20-alpine)而非latest,确保版本稳定性root用户执行(可通过USER root切换)volumes挂载代码可实现热重载,但需注意文件权限与容器内用户匹配您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务