Harbor使用过程中遇到的一些问题

问题一:docker拉取镜像提示 connect: connection refused
检查harbor是否正常启动,正常启动时一般会运行下面这些相关镜像
在这里插入图片描述
如果正在运行的相关镜像只有一个或两个,说明harbor没有正常启动,需要重新启动,harbor 通过docker-compose.yml配置文件的形式管理,所以需要通过以下命令进行重启

#停止
docker-compose stop
#启动
docker-compose up -d

问题二:从harbor仓库拉取镜像时提示

server gave HTTP response to HTTPS client

这是因为Docker自从1.3.X之后docker与registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以出现以上错误
解决方法一:
harbor配置https方式访问
解决方法二:
在docker server启动的时候,增加启动参数,默认使用HTTP访问,由于是全局修改,可能会对其他服务产生影响,故不推荐

 vim /usr/lib/systemd/system/docker.service

在12行后面增加 `–insecure-registry ip:port 保存退出

解决方法三:
在 /etc/docker/daemon.json 文件中增加以下内容,根据自己的harbor配置修改ip和端口,如果文件不存在则新建文件

{ "insecure-registries":["10.xx.xxx.xx:9091"] }

按照上面任意一种方法修改后都需要重启docker 服务

systemctl daemon-reload 
systemctl restart docker

问题三:向远程仓库中push镜像时提示

 unauthorized to access repository: xx/xxxx, action: push: unauthorized to access repository: xx/xxxx, action: push

这是因为服务器之前没有登录过harbor,没有生成认证信息,只需进行登录操作输入用户名密码即可,将下面的ip和端口根据实际的harbor地址进行修改

docker login 123.123.123.123:9091

在这里插入图片描述

登录成功后认证信息保存在 /root/.docker/config.json 文件中
在这里插入图片描述

问题四: harbor.yml 配置文件设置harbor hostname为本机IP时提示

ERROR:root:127.0.0.1 can not be the hostname

hostname不能使用127.0.0.1,需要改为 localhost

问题五:

 iptables: No chain/target/match by that name

找不到docker服务启动时定义的自定义链,可以通过重启docker服务重新生成自定义链DOCKER

iptables -t filter -F
iptables -t filter -X
systemctl restart docker

还有可能是iptables工具版本太低,导致有一些高级功能不支持

问题五: 使用 docker service updatedocker stack deploy 时提示

 image could not be accessed on a registry to record its digest. 

由于服务采用了swarm集群,服务部署时可能会发布到任一节点,如果服务发布的节点没有进行docker login,就会出现这个提示信息,需要在每一个节点上进行docker login,具体方法可以参考问题三

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值