Dockerfile 在线生成

选择运行时与配置项,实时预览生成的 Dockerfile,支持多阶段构建,一键复制下载

选择运行时
基础配置
运行时镜像的 tag
容器内应用目录
格式:源 目标(相对 WORKDIR)
多条命令换行,每行一条 RUN
多个端口用逗号分隔
容器启动命令
高级选项
环境变量 ENV
暂无环境变量
Dockerfile 预览
预览实时更新,复制或下载可直接保存为 Dockerfile
广告位

工具介绍

Dockerfile 在线生成器覆盖主流语言运行时,按表单填写配置项即可实时生成符合最佳实践的 Dockerfile。

  • 9 种运行时:Node.js、Python、Java、Maven、Nginx、Go、PHP、Ruby、通用 Alpine。
  • 实时预览:所有配置项变更立即同步到右侧 Dockerfile 预览区。
  • 多阶段构建:勾选即可生成 builder + 运行时两阶段 Dockerfile,镜像更小更安全。
  • 安全优化:可选非 root 用户运行、清理缓存、设置时区。
  • 预置模板:每种运行时都有开箱即用的默认配置,复制即用。

安全保障

  • 纯本地生成:Dockerfile 在浏览器中按配置项拼接生成,不发送任何请求。
  • 无外部依赖:不依赖任何第三方 Docker 模板库,逻辑完全自实现。
  • 安全实践:内置非 root 用户、缓存清理等安全选项,生成的 Dockerfile 符合官方安全建议。

常见问题

CMD 和 ENTRYPOINT 有什么区别?

CMD 易被 docker run 后的参数覆盖,适合默认命令;ENTRYPOINT 不易被覆盖,适合固定入口程序。两者可配合使用:ENTRYPOINT 指定程序,CMD 提供默认参数。本工具默认使用 CMD,可勾选切换。

多阶段构建有什么好处?

多阶段构建用 FROM ... AS builder 编译产物,再 COPY 到精简运行时镜像,最终镜像不含编译器、源码,体积更小(常缩小 50%-80%),攻击面更小。Go、Java、Node.js 等编译型/打包型应用尤其推荐。

为什么推荐非 root 用户?

容器内若以 root 运行,一旦应用被攻破,攻击者可借助容器逃逸获得宿主机权限。创建普通用户(如 appuser)运行应用可降低风险,是 Kubernetes 安全基线、CIS Docker Benchmark 推荐做法。

为什么我的 Dockerfile 构建很慢?

常见原因:1)依赖文件频繁变动导致缓存失效,建议先 COPY package.jsonRUN npm ci,最后 COPY . .;2)基础镜像过大,可换 alpine/slim 版本;3)未清理包管理器缓存,本工具的"清理缓存"选项可解决。