代码之家  ›  专栏  ›  技术社区  ›  Jim Aho

“docker build——pull”的目的是什么?

  •  1
  • Jim Aho  · 技术社区  · 5 年前

    在构建通常使用的docker映像时 docker build . .

    --pull ,所以整个命令看起来像 docker build --pull .

    我不确定这个计划的目的 --拉 . 码头工人 official documentation 说“总是试图拉一个新版本的图像”,我不知道这意味着什么在这种情况下。

    你用 docker build 构建一个新映像,并最终将其发布到容器注册表的某个位置。你为什么要拉一些还不存在的东西?

    我希望像这样“简单”的东西在网上很容易找到,但似乎没有人会有类似的问题。谷歌上唯一真正的热门是Dockers官方文档,我(如上所述)不明白。

    谢谢你的帮助!

    3 回复  |  直到 5 年前
        1
  •  37
  •   anthony sottile    4 年前

    它将提取任何基本映像的最新版本,而不是重用您在本地已标记的内容

    ubuntu:bionic ). upstream会定期进行更改和重建,但您可能在本地有一个月前的映像。码头工人将很乐意在老基地的基础上建造。 --pull 将拉作为一个副作用,所以你对最新的基础形象建设

    通常最好的做法是使用它尽快获得上游安全修复(而不是使用过时的、可能易受攻击的映像)。尽管您必须权衡中断的更改(如果您使用不可变的标记,那么这并没有什么区别)

        2
  •  1
  •   andrhamm    4 年前

    --pull 标记到 docker build ,例如。 docker build . --pull -t myimage . 这是确保生成始终使用最新容器映像的推荐方法,尽管本地有可用的版本。不过,还有一点值得一提:

    要确保完全重建生成(包括检查基础映像的更新),请在生成时使用以下选项:

    --no-cache -这将强制重建已经可用的层。

    因此,完整命令将如下所示:

    docker build . --pull --no-cache --tag myimage:version

    相同的选项可用于 docker-compose

    docker-compose build --no-cache --pull

        3
  •  0
  •   DUDANF    5 年前

    docker build docker pull 用于从docker hub中提取。如果使用docker build而没有docker文件,则会引发错误。

    --pull :latest docker将尝试下载最新版本(如果有)

    基本上,如果您添加--pull,它将在每次运行时尝试提取最新版本。