docker - 如何在执行 Docker 构建时禁用加载元数据?
问题描述
Windows 10、DockerDesktop v3.5.2、Docker v20.10.7
每当我的计算机与 Internet 断开连接时,
该命令都会docker build -t my_image .
产生如下输出。
Dockerfile 包含行FROM some_public_image:123
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 187B 0.0s
=> [internal] load .dockerignore 0.1s
=> => transferring context: 2B 0.0s
=> ERROR [internal] load metadata for docker.io/library/some_public_image:123 0.0s
------
> [internal] load metadata for docker.io/library/some_public_image:123:
------
failed to solve with frontend dockerfile.v0: failed to create LLB definition:
failed to do request: Head https://registry-1.docker.io/v2/library/some_public_image/manifests/123:
dial tcp: lookup registry-1.docker.io on 192.168.65.5:53: no such host
有时它会导致构建失败:不确定,但我猜当 Docker 守护进程启动和执行docker build
.
我想它会尝试将拉取的图像与 repo 版本同步(即检查图像完整性),但想控制这个网络活动并关闭这个“加载元数据”(说我确定所有拉取的图像都很好)即使连接稳定。
如何在执行docker build
命令时禁用加载元数据?
解决方案
我也有这个问题,通过谷歌我发现其他人问这个问题没有好的解决方案。
我的解决方法:
- 当我仍然在良好的 Internet 连接上时,我
docker pull some_public_image:123
. docker tag some_public_image:123 this_is_stupid_but_i_retagged_some_public_image
.- 在我的 Dockerfile 中,我使用
FROM this_is_stupid_but_i_retagged_some_public_image
.
我不会将此 hack 合并到 main 中,但它让我在长途旅行中富有成效。
推荐阅读
- python-3.x - PyQt5 + 日志库
- netlogo - 编程新手对netlogo有疑问
- python - 如何制作一个 for 语句以按名称 i 在 Excel 工作表中选择行
- r - 在 R 的 for 循环中应用 trimws() 时出错
- c# - 动态制作 HangFire 连接字符串 .NetCore
- vue.js - 如何根据路由参数动态改变vuejs方法?
- excel - 如何使用 Excel 从 .csv 文件中散点图超过 255 个 XY 对?
- azure - Databricks 包 com.databricks.spark.xml 存在编码问题
- docker - 通过 ssh 连接到远程 docker 服务器时,如何指定我的 SSH 密钥?
- django - DataError:类型字符变化的值太长(1024)TextField