windows - 运行 Minikube build-env 后无法构建 docker 镜像
问题描述
我在 Windows 10 中使用 Minikube,我想使用本地构建的 Docker 映像而不是托管在注册表中的映像,因此,根据本教程,我必须运行下一个命令:
使用本地 Kubernetes 和镜像:
> minikube docker-env
输出是:
PS C:\WINDOWS\system32> minikube docker-env
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_HOST = "tcp://10.98.38.126:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\MyUser\.minikube\certs"
# Run this command to configure your shell:
# & minikube docker-env | Invoke-Expression
要配置 shell,请运行以下命令:
> & minikube docker-env | Invoke-Expression
之后,我需要构建一个新图像:
PS D:\repos\test> docker build -t miImage:v1 .
我有下一个错误:
PS D:\repos\test> docker build -t miImage:v1 .
Sending build context to Docker daemon 8.62MB
Step 1/10 : FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
Get https://mcr.microsoft.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
这是由于我将其配置为使用本地图像而引发的错误,有什么办法可以解决吗?
解决方案
看起来您用来构建的机器无法访问https://mcr.microsoft.com/v2/以确认这一点,请尝试向 URL 发送一个简单的 GET
wget https://mcr.microsoft.com/v2/
如果这是问题所在,您可以使用另一台机器来拉取图像,然后将其保存到文件并加载到目标机器上。
#on a machine connected to internet
docker pull mcr.microsoft.com/dotnet/core/sdk:2.2
docker save mcr.microsoft.com/dotnet/core/sdk:2.2 > dotnetsdk2_2.tar
# download the file
# on the target machine
docker load < dotnetsdk2_2.tar
那么您的构建应该可以使用本地版本的图像正常工作。
推荐阅读
- python - 如何为命令提示符创建自己的外部命令?
- c# - Firebase Unity SDK:如何获取所有注册用户
- javascript - D3.js d3.line 从输入中获取值时给出意外结果
- swift - 如何解决表格视图单元格中动态更改元素的问题
- javascript - 将spring java对象传递给javascript
- swift - 替换字符串中的出现
- f# - 为什么类型推断只适用于这里的管道?
- css - Bootstrap 4 的响应式文本
- twitter-bootstrap-3 - 从 DB 表加载到输入文本中的数据,按空格截断文本
- animation - 在 nextTick 组件中不重绘