【问题标题】:docker/docker-compose build --pull behaviordocker/docker-compose build --pull 行为
【发布时间】:2019-08-23 21:36:38
【问题描述】:

我正在尝试了解 docker build --pull/docker-compose build --pull 选项的工作原理。 我找到了一个链接 - https://docs.docker.com/compose/reference/build/ 它只是说 -

始终尝试拉取更新版本的图像。

但我还有一些问题没有得到解答 -

例如考虑这张图片 - mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim

当我使用--pull 标志时,

  1. 如果可用,它会拉取 aspnetcore 3.1 版本吗?
  2. 如果可用,它会拉动夜间构建吗?
  3. 不管本地镜像和最新镜像是否相同,它会一直下载镜像吗?
  4. 如果机器在运行docker build --pull时没有互联网连接会发生什么?

【问题讨论】:

    标签: docker docker-compose docker-machine


    【解决方案1】:
    1. 如果可用,它会拉取 aspnetcore 3.1 版本吗?

    不,因为它不会被标记为:3.0-buster-slim

    1. 如果可用,它会拉动夜间构建吗?

    不,因为它不会被标记为:3.0-buster-slim

    1. 不管本地镜像和最新镜像是否相同,它会一直下载镜像吗?

    没有。如果本地和远程 sha256 哈希值不同,它将下载更新。如果它们相同,则不会重新下载。没有意义。

    让我们用一个简单的一行 Dockerfile 来测试一下:

    FROM alpine:latest
    

    第一次:

    $ docker build --pull .
    ...
    latest: Pulling from library/alpine
    Digest: sha256:72c42ed48c3a2db31b7dafe17d275b634664a708d901ec9fd57b1529280f01fb
    Status: Downloaded newer image for alpine:latest
    

    后续构建:

    $ docker build --pull .
    ...
    latest: Pulling from library/alpine
    Digest: sha256:72c42ed48c3a2db31b7dafe17d275b634664a708d901ec9fd57b1529280f01fb
    Status: Image is up to date for alpine:latest
    
    1. 如果机器在运行docker build --pull时没有互联网连接会发生什么?

    构建失败。在禁用网络的情况下,--pull 失败:

    $ docker build --pull .
    Sending build context to Docker daemon  2.048kB
    Step 1/1 : FROM alpine:latest
    Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 127.0.0.53:53: server misbehaving                           
    

    没有--pull 它可以工作:

    $ docker build .
    Sending build context to Docker daemon  2.048kB
    Step 1/1 : FROM ubuntu:latest
     ---> a2a15febcdf3
    Successfully built a2a15febcdf3
    

    【讨论】:

      【解决方案2】:
      1. 没有
      2. 没有
      3. 它将始终检查名称为:tag mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim 的新图像
      4. 它应该会因错误而失败

      【讨论】:

      • 当您说“检查”时,是否意味着仅检查本地和远程版本是否相同,如果相同则跳过,如果最新可用,请下载?还是总是下载图片?
      • @pratiksanglikar 如果您的意思是“修订”==“摘要”,那么是的。如果您的意思是“修订”==“标签”,那么没有。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-29
      • 2019-07-22
      • 2021-10-23
      • 2018-10-18
      • 1970-01-01
      • 2017-01-19
      • 1970-01-01
      相关资源
      最近更新 更多