Harbor报错:connect: connection refused,企业级容器镜像仓库 Harbor 的安装配置与问题解决

一、Harbor 简介

Harbor 是一个用于存储和分发Docker镜像的企业级Registry服务器。

Harbor具有的优势:

1. 提供分层传输机制,优化网络传输 Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。
2. 提供WEB界面,优化用户体验 只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。
3. 支持水平扩展集群 当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。
4. 良好的安全机制 企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性

二、Harbor 安装

1、先安装Docker并启动Docker

未安装 docker 可以参考文章:docker安装

2、安装docker-compose
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

给docker-compose添加执行权限
sudo chmod +x /usr/local/bin/docker-compose

查看docker-compose是否安装成功
docker-compose -version
3、下载Harbor的压缩包,并解压安装

点击获取下载地址:Harbor
https://github.com/goharbor/harbor/releases

tar -xf harbor-offline-installer-v1.10.2.tgz && mv harbor /usr/local/src/
修改hostname和port
cd /usr/local/src/harbor && vim harbor.yml
hostname: 192.168.66.102
port: 85

如果只用ip访问就需要注释掉https的选项
#https:
  #port: 443


安装Harbor
./prepare
./install.sh
4、启动 Harbor 后,访问
docker-compose up -d 启动
docker-compose stop 停止
docker-compose restart 重新启动

访问Harbor
http://localhost:85
默认账户密码:admin/Harbor12345

在这里插入图片描述

三、打包上传镜像到 Harbor

1)登录后提示成功
在linux总端登录Harbor:
sudo docker login -u tens -p Tens123456 161.17.60.38:85
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
2)对镜像进行打包

将要上传的镜像打tag 使其知道要上传的地址
打包的方式:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

sudo docker images
REPOSITORY         TAG          IMAGE ID            CREATED             SIZE
eureka             v1           c0b9a9abf81e        About an hour ago   150MB

sudo docker tag eureka:v1 161.17.60.38:85/tensquare/eureka:v1
3)把打包好的镜像上传到
sudo docker push 161.17.60.38:85/tensquare/eureka:v1
The push refers to repository [161.17.60.38:85/tensquare/eureka]
5be351ff00ca: Pushed 
ceaf9e1ebef5: Pushed 
9b9b7f3d56a0: Pushed 
f1b5933fe4b5: Pushed 
v1: digest: sha256:4871feb25d52cd4275d97b63a85556043a3efee74349e008807383e1d7e9132f size: 1159
4)在 Harbor 上面就可看到上传的镜像

在这里插入图片描述

四、下载 Harbor 上项目的镜像到本地

1)登录成功后,拉取镜像

下载的镜像要知道要下载的地址和对应目录和版本号
拉取的方式:docker push [OPTIONS] NAME[:TAG]

在linux总端登录Harbor:
sudo docker login -u tens -p Tens123456 161.17.60.38:85
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

sudo docker pull 161.17.60.38:85/tensquare/eureka:v1
v1: Pulling from tensquare/eureka
e7c96db7181b: Already exists 
f910a506b6cb: Already exists 
c2274a1a0e27: Already exists 
a5100da0a6a8: Pull complete 
Digest: sha256:3ffae5f17b10b0366de123902aa78ed3426a7069b4d01b3fcc1b2ac38b499038
Status: Downloaded newer image for 161.17.60.38:85/tensquare/eureka:v1

在这里插入图片描述

2)在拉取的机器上面能看到刚刚拉取的镜像
sudo docker images
REPOSITORY                           TAG    IMAGE ID        CREATED           SIZE
161.117.60.138:85/tensquare/eureka   v1     26f03cdd882a    19 minutes ago    150MB

注意:遇到的坑

这里用的docker版本为:18.06.3
docker -v
Docker version 18.06.3-ce, build d7080c1

登录 Harbor 的时候会报错:
Error response from daemon: Get http://161.17.60.38:85/v2/: dial tcp 161.17.60.38:85: connect: connection refused

上传镜像到 Harbor 的时候,会报错:
The push refers to repository [161.17.60.38:85/tensquare/eureka]
Get http://161.17.60.38:85/v2/: dial tcp 161.17.60.38:85: connect: connection refused
8DB6CD

在网上搜了半天,有的是去编辑 /etc/docker/daemon.json 文件,而有的是在 docker.service

如果在 /etc/docker/daemon.json 的解决办法:添加 insecure-registries 即可
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://zydiol88.mirror.aliyuncs.com"],
"insecure-registries": ["161.17.60.38:85"]
}
如果是在 docker.service 解决办法:在 ExecStart 添加 --insecure-registry
find / -name docker.service -type f
/usr/lib/systemd/system/docker.service

在 ExecStart 这行后面加上 -insecure-registry=Harbor登录地址
sudo vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry=161.17.60.38:85

sudo systemctl daemon-reload
sudo systemctl restart docker
......
重启完成后重新登录即可
在linux总端登录Harbor:
sudo docker login -u tens -p Tens123456 161.17.60.38:85
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这个错误提示通常表示连接Harbor服务器时发生了错误。有几个可能的原因导致连接被拒绝: 1. Harbor服务未启动或已停止运行:请确保Harbor服务正在运行,并检查Harbor服务的日志文件以查看是否有任何错误信息。 2. 防火墙阻止了连接:如果您使用了防火墙,请确保防火墙已配置允许Harbor服务器的端口通信。 3. 网络连接问题:请确保网络连接正常,并检查您的代理设置是否正确。 如果您仍然无法解决问题,请尝试查看Harbor服务器的日志文件以获取更多信息,并检查您的网络连接和防火墙设置。 ### 回答2: "Harbor connect: connection refused" 是一个常见的网络错误提示,意味着无法建立与某个港口或服务器的连接。 出现这个错误有几个可能的原因。首先,可能是目标服务器的端口关闭或不可用。这可能是因为服务器宕机、维护或配置错误等原因造成的。 其次,防火墙或安全设置可能阻止连接。这是为了防止未经授权的访问或恶意攻击。可能需要检查网络设置,确保相应的端口是开放的,并且没有被阻止。 还有一种可能性是网络连接存在问题,包括网络故障、信号干扰、网络延迟或传输错误等。在这种情况下,可以尝试重新连接或使用其他网络进行尝试。 此外,还可能出现连接超时的情况。这可能是由于网络延迟、目标服务器响应缓慢或其他网络问题导致的。 为了解决这个问题,可以采取以下一些步骤: 1. 确认目标服务器是否正常运行,并且相应的端口是否开放。可以与服务器管理员联系以获取更多信息。 2. 检查防火墙或安全设置,确保允许与目标服务器的连接。 3. 检查网络连接,尝试使用其他网络或重新连接。 4. 如果问题仍然存在,可以尝试使用其他端口或协议。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值