docker buildx 设置insecure registry
版权声明 本站原创文章 由 萌叔 发表
转载请注明 萌叔 | https://vearne.cc
警告:本文仅用于萌叔自己总结之用,对其它人而言可能毫无营养,没有阅读价值。
1.前言
使用docker buildx 可以在一次build中生成支持多个平台的image。但在推动给私有仓库时,报"x509: certificate signed by unknown authority"。经过确认是,私有仓库使用的证书是自签名证书,导致SSL握手失败导致的。
2. 解决
docker buildx使用的builder配置方式与docker配置方式不同,需要在创建builder时,即指定
1) 创建配置文件
cat <<EOF > ./config.toml
debug = true
# root is where all buildkit state is stored.
root = "/var/lib/buildkit"
# insecure-entitlements allows insecure entitlements, disabled by default.
insecure-entitlements = [ "network.host", "security.insecure"]
[registry."my-registry.abc.local"]
http = true
insecure = true
EOF
2) 创建builder
指定以./config.toml作为mybuilder的配置文件
docker buildx create --use --name=mybuilder —-config=./config.toml --bootstrap
--bootstrap
表示启动builder
--use
表示将mybuilder作为默认builder
3) 创建builder
docker buildx inspect
4) 可以正常使用
docker buildx build --platform linux/amd64,linux/arm64 --push -t ${IMAGE_NAME} .
参考资料
1.docker buildx
2.multi arch image: error while pushing "http: server gave HTTP response to HTTPS client"
3.在M1Mac上构建x86 Docker镜像