当前私有仓库使用harbor且enable了ssl. 本地容器工具由docker切换到了podman. podman对比docker的各种优势此处不再赘述,这里主要讲一下podman本地配置问题.
下面看详细的配置,笔者是mac, 所以配置文件路径是$HOME/.config/containers/containers.conf
# 所有镜像源,这里包括国内镜像加速仓库地址和你的harbor私有仓库地址
[registries.search]
registries = ['docker.io', 'registry.cn-hangzhou.aliyuncs.com', 'yourharbor.com']
# 镜像加速网站配置为insecure
[registries.insecure]
registries = ['registry.cn-hangzhou.aliyuncs.com']
# 私有harbor仓库配置 主要是配置你的harbor仓库host和自签名ca证书
# tlsverify true 或者 false 其实都没影响
[registries.'yourharbor.com']
tlsverify = true
tls = "your harbor ca.crt file path"
配置完毕重启一下podman 然后测试, 注意此此处的证书是自签的,用常见的login命令
podman login yourharbor.com
总会出现如下错误(而且这里引号好像还是中文的, 非常诡异)
x509: “yourharbor.com” certificate is not standards compliant
解决办法是在podman所有指令后面加上--tls-verify=false
podman login yourharbor.com --tls-verify=false
猜想可能是podman对自签名证书不支持, 因为如果使用的是podman desktop 可以在 registry中添加私有仓库,笔者有试验过这种方式添加私有仓库,尝试连接的时候报如下错误
Unable to find auth info for https://yourharbor.com/v2/. Error: RequestError: self signed certificate
所以推测可能对自签证书不支持,但是增加--tls-verify=false
足以解决自签证书问题,就不再深究.