首页/云/Docker 容器速查/RUN 执行构建命令
镜像与构建107 条

RUN 执行构建命令

构建期执行命令并产出层:shell 形式(默认 /bin/sh -c)便于用管道与变量,exec 形式不经过 shell、更可控。

Docker 容器速查云更新于 2026-10-12
用途构建阶段执行命令
shell 形式RUN apt-get update && apt-get install -y curl
exec 形式RUN ["/bin/sh", "-c", "echo hi"](JSON 数组)

示例

示例
RUN apt-get update && apt-get install -y --no-install-recommends curl
RUN ["go", "build", "-o", "/out/app", "."]
RUN mkdir -p /app && chown 1000:1000 /app
每条 RUN 生成一层;需要 shell 特性(管道、通配符、变量展开)时用 shell 形式,直接调用可执行文件用 exec 形式。

易错点

  • exec 形式不经过 shell,$HOME 这类变量不会展开,管道与通配符也不可用
  • apt-get update 与 install 拆成两条 RUN 会因缓存产生过期索引问题,应放同一条

数据来源与参考

  • Docker 官方文档:Dockerfile RUN(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌