Dockerfile 中 RUN 和 CMD 的区别

新手上路,请多包涵

我对何时应该使用 CMD vs RUN 感到困惑。例如,要执行 bash/shell 命令(即 ls -la ),我将始终使用 CMD 或者是否存在我会使用 RUN 的情况?试图了解这两个相似的 Dockerfile 指令的最佳实践。

原文由 TakeSoUp 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 620
2 个回答

RUN 是一个镜像构建步骤,在 RUN 命令之后的容器状态将提交给容器镜像。一个 Dockerfile 可以有许多 RUN 一层一层地构建镜像的步骤。

CMD 是启动构建镜像时容器默认执行的命令。一个 Dockerfile 将只使用最终定义的 CMD 。当使用 CMD 启动容器时,可以覆盖 docker run $image $other_command

ENTRYPOINT 也与 CMD 密切相关,可以修改容器从镜像启动的方式。

原文由 Matt 发布,翻译遵循 CC BY-SA 4.0 许可协议

RUN - 在我们构建 docker 镜像时触发命令。

CMD - 当我们启动创建的 docker 镜像时命令触发。

原文由 Nisal Edu 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题