Harbor私有镜像仓库使用及报错总结
问题描述:我172.10.208.12上pull了一个orchestrator的镜像,想将镜像推送到 Harbor 私有镜像仓库,并在 k8s中使用
第一步 给镜像打标签
首先,你需要将镜像打上 Harbor 仓库的标签,以便 Docker 知道应该推送到哪里。假设你在 172.10.208.12
上拉取的镜像名称为 orchestrator-image
,你可以通过以下命令给它打上 Harbor 仓库的标签:
docker tag orchestrator-image registry-gq.harbor.com/orche/orchestrator-image:latest
registry-gq.harbor.com/my-project/orchestrator-image:latest
是目标 Harbor 仓库的完整镜像路径和标签。
my-project
是你在 Harbor 中的项目名称,注意这个项目名称一定是存在的,可以访问的,不存在会提示project orche not found:
第二步 登录到 Harbor 仓库
登录到 Harbor 仓库
docker login registry-gq.harbor.com
第三步 推送镜像到 Harbor并使用
将镜像推送到你在 Harbor 中的项目
docker push registry-gq.harbor.com/orhce/orchestrator-image:latest
Kubernetes 中使用推送的镜像
apiVersion: v1
kind: Pod
metadata:
name: orchestrator-pod
spec:
containers:
- name: orchestrator
image: registry-gq.harbor.com/my-project/orchestrator-image:latest
imagePullPolicy: Always
验证部署
kubectl get pods -o wide
问题总结
1.出现Error response from daemon: Get "https://registry-gq.harbor.com/v2/": dial tcp: lookup registry-tgq.harbor.com on 223.5.5.5:53: no such host
或者ping: registry-tgq.harbor.com: Name or service not known
分析:该错误提示 Docker 无法解析 registry-tgq.harbor.com
的域名。这通常是由于 DNS 配置问题或主机名没有正确解析为相应的 IP 地址引起的,修改172.16.208.12上的hosts文件
sudo vim /etc/hosts
添加下列内容:
192.168.x.x registry-tgq.harbor.com
2.在登录过程中出现Error response from daemon: Get "https://registry-tgq.harbor.com/v2/": tls: failed to verify certificate: x509: certificate is not valid for any names, but wanted to match registry-tgq.harbor.com
分析: Docker 在尝试连接 registry-gq.harbor.com
时,无法验证 TLS 证书的有效性。
解决一:临时跳过证书验证,添加–insecure参数
解决二:编辑 Docker 配置文件
vim /etc/docker/daemon.json
添加
{
"insecure-registries": ["registry-gq.harbor.com"]
}
重启生效
systemctl restart docker