运行 docker 基于位于容器内的 docker 文件构建

Running docker build on a dockerfile located within a container

我是 Docker 的初学者,我正在努力掌握它的结构和过程。我正在努力弄清楚以下工作场景。

我在节点上有一个 docker 容器 my-container 运行ning。在这个容器中有一个 Docker 文件,我用几行 运行 更新了它,这样每次容器 运行 时它都会安装一些东西。我删除了现有的 docker 图像,我想使用更新的 Docker 文件重建和标记 docker 图像。 Docker文件编辑和图像重建只需要一次。

是否有使用位于容器内的 Docker 文件将 docker build 变为 运行 的最佳或普遍接受的方法?我四处搜索,可以找到几种不同的方法:

  • 运行 docker build 从容器内,使用 Docker 中的 Docker 概述 here
  • 运行 docker build 通过套接字从容器中传递(尽管永远不应该这样做,但是在你 运行 命令之后有没有办法关闭漏洞(一次关闭)并 运行 再次使用 -v 绑定安装容器而不使用 -v?
  • 运行 docker build 来自容器外部,但使用包含更新的 docker 文件的容器的 url 作为构建上下文?看: 3 different ways to provide docker build context and Docker docs.
  • 其他一些我还没找到的方法。
  • 谢谢

    有一个名为 "Docker in Docker" 的 Docker 映像,可让您在容器内调用 Docker,也许这可以在您的设置中提供一些提示。

    https://hub.docker.com/_/docker/

    您可以将容器内的 Dockerfile 定义为卷,然后使用 docker 构建命令从外部(主机)调用该 Dockerfile。我认为这是最简单的方法。