在 docker 中调试镜像/生产镜像

时间:2021-02-17 17:53:04

标签: docker dockerfile

Docker best practices 建议一种方法:

<块引用>

要保持生产映像精简但允许调试,请考虑使用生产映像作为调试映像的基础映像。可以在生产映像之上添加额外的测试或调试工具。

但哪种方式最适合实现这一目标?在我的例子中,我有一个静态链接的二进制文件,它只需要一个基本的库,由小 rhel-minimal 图像提供。

FROM registry.access.redhat.com/rhel-minimal:latest
COPY app /app/
WORKDIR /app
ENTRYPOINT ["./app"]

我可以基于我的 Dockerfile 创建的镜像构建另一个镜像,但这似乎不合适,因为我必须为我创建的每个镜像执行此操作。我想要的只是一种机制,当我想开始调试会话时,它允许我从 rhel-minimal 基本映像更改为某个 rhel-minimal-with-debug-utils。这可能吗?

1 个答案:

答案 0 :(得分:0)

<块引用>

Q. 我想要的只是一种机制,它允许我从 将rhel-minimal 基础映像转换为一些rhel-minimal-with-debug-utils, 当我想开始调试会话时。这可能吗?

解决方案 1:

您也可以在 docker 存储库中保留基本映像的副本。 例如,

  • 生产基础镜像:localregistry/rhel-minimal:latest
  • 调试基础镜像:localregistry/rhel-minimal:debug

解决方案 2:

您还可以利用 docker multi-staging 使用单个 Dockerfile 构建多个映像以进行测试、调试和生产。