首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标准码头推送工作,但没有buildx(坞-容器)-错误导出到映像

标准码头推送工作,但没有buildx(坞-容器)-错误导出到映像
EN

Stack Overflow用户
提问于 2022-09-05 16:33:29
回答 1查看 349关注 0票数 2

我正在尝试构建推到本地注册表。我有docker login <registry>的成功。

我是建立在macos上。看起来这和docker-container有关。

标准码头工程:

代码语言:javascript
复制
docker build -t <registry>/demo
docker push <registry>/demo

但是buildx不起作用:

代码语言:javascript
复制
docker buildx create --use --name my-builder --driver-opt network=host --buildkitd-flags '--allow-insecure-entitlement network.host' --use

或者这个:

代码语言:javascript
复制
docker buildx create --name my-builder --platform $platforms --driver docker-container --driver-opt network=host --use

我知道这个错误:

代码语言:javascript
复制
docker buildx build --builder my-builder --tag <registry>:5000/demo -f Dockerfile .

 ...
 => ERROR exporting to image                                                                                                                                                                                               0.3s
 => => exporting layers                                                                                                                                                                                                    0.2s
 => => exporting manifest sha256:b7bbe730a33ba61b903b4371ded8057dd1a129fd60ff261e3a3ce5ef3425924e                                                                                                                          0.0s
 => => exporting config sha256:c38954cc53caf2cc4dd08ea836c3f2ab8951f400ce6731401628c9ba78f4ce5f                                                                                                                            0.0s
 => => pushing layers                                                                                                                                                                                                      0.0s
------
 > exporting to image:
------
ERROR: failed to solve: failed to do request: Head "https://<registry>:5000/v2/demo/blobs/sha256:659301074bba138f5e7a1896fbe03daa5d95ce5b4f804af5a2c9ea03e9411b8b": http: server gave HTTP response to HTTPS client

有什么特别的事情要用buildx来推送吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-07 20:14:40

如果您使用的是本地注册表,如:

$ docker运行-d -p 5001:5000 --始终重新启动-名称注册中心:2

(在我的设置中,本地注册端口是5001而不是5000,因为mac (m1应用硅)在该端口上有一个进程)。

然后您可能需要创建自定义buildx (bash脚本),例如:

代码语言:javascript
复制
#!/bin/sh
name=container-builder
docker buildx ls | grep -q $name && docker buildx rm $name
docker buildx create --driver-opt network=host --use --config config.toml --name $name

config.toml文件有:

代码语言:javascript
复制
[registry."localhost:5001"]
  http = true

另外,对于我在Docker引擎中的本地注册表(通过Dashboard),添加到docker守护进程配置中:

代码语言:javascript
复制
  "experimental": true,
  "features": {
    "buildkit": true
  },
  "insecure-registries": [
    "localhost:5001"
  ]

这将修复本地注册表的https错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73612351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档