docker - docker/docker-compose build --pull 行为
问题描述
我试图找出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
国旗时,
- 如果可用,它会拉取 aspnetcore 3.1 版本吗?
- 如果可用,它会拉动夜间构建吗?
- 无论本地图像和最新图像是否相同,它是否总是下载图像?
- 如果机器在运行时没有互联网连接会发生什么
docker build --pull
?
解决方案
- 如果可用,它会拉取 aspnetcore 3.1 版本吗?
不,因为它不会被标记:3.0-buster-slim
。
- 如果可用,它会拉动夜间构建吗?
不,因为它不会被标记:3.0-buster-slim
。
- 无论本地图像和最新图像是否相同,它是否总是下载图像?
不会。如果本地和远程 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
- 如果机器在运行时没有互联网连接会发生什么
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
推荐阅读
- python - 如何从 datetime 按日期分组列的总和?蟒蛇熊猫
- javascript - 如何使用旧项目中的 data-i18n 属性
- azure-active-directory - 添加 O365 来宾用户时跳过电子邮件验证
- c# - 获取所有子线程的CPU使用率总和
- javascript - 用户离开字段后验证表单字段
- go - go.mod 使用没有标签的模块
- groovy - Groovy 断言失败
- sql - 如何在最后使用 null 进行 Order By
- html - CSSOM 是仅在 html 页面具有外部工作表链接时创建,还是在我们具有内联样式或内部 css 时创建?
- java - 将现有 Wordpress 网站转换为 Android/IOS 应用程序的“简单方法”