搭建docker私有仓库harbor

这里先推荐几篇博客,这是我开始搭建之前先找的文章,觉得不错,但是大佬们用的版本都比较旧,我换成了比较新的版本,旧的和新的配置文件有些不同,以下是我的搭建过程,如有错误和不足,还请指正,共同进步
https://www.cnblogs.com/kevingrace/p/6547616.html
https://www.cnblogs.com/pangguoping/p/7650014.html
 
其中一篇博客中提到的误区,我之前还真的理解错了:

Harbor的误区
误区一: Harbor是负责存储容器镜像的 (Harbor是镜像仓库,那么它就应当是存储镜像的)
其实关于镜像的存储,Harbor使用的是官方的docker registry服务去完成,至于registry是用本地存储或者s3都是可以的,Harbor的功能是在此之上提供用户权限管理、镜像复制等功能,提高使用的registry的效率。

误区二:Harbor镜像复制是存储直接复制 (镜像的复制,很多人以为应该是镜像分层文件的直接拷贝)
其实Harbor镜像复制采用了一个更加通用、高屋建瓴的做法,通过docker registry 的API去拷贝,这不是省事,这种做法屏蔽了繁琐的底层文件操作、不仅可以利用现有docker registry功能不必重复造轮子,而且可以解决冲突和一致性的问题。

 
一、安装依赖
yum install -y yum-utils   device-mapper-persistent-data    lvm2
 
二、配置docker安装仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

三、安装dockerCE
 
yum install docker-ce -y
启动docker
systemctl start docker

 

如果需要卸载docker-ce,操作如下:
 
yum remove docker-ce
卸载后images,containers,volumes,configuration files 是不能自动删除的,为了删除all images,containers,and volumes,请执行如下命令:
rm -rf /var/lib/docker

 

 
四、安装docker-compose
注意安装版本,下面的版本可以改的
curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compos
 
赋予docker-compose可执行权限
 
chmod +x /usr/local/bin/docker-compose
根据自己的情况决定是否安装命令补全功能
yum install bash-completion

卸载docker-compose

rm  /usr/local/bin/docker-compose

 

 
五、安装harbor
wget https://github.com/goharbor/harbor/releases/download/v1.10.1/harbor-online-installer-v1.10.1.tgz
tar -xvf harbor-online-installer-v1.10.1.tgz
 
修改配置文件
 1 cd harbor
 2 vim harbor.yml
 3 hostname: xxx.xxx.xxx.xxx      ##访问UI和仓库的IP或者hostname
 4 http:
 5 port: 8000      ##UI访问端口,有些公网IP不能直接访问80端口,要改一下
 6 harbor_admin_password: Harbor12345     ##登录harborUI的密码,建议更改
 7 database:
 8 password: root123
 9 max_idle_conns: 50
10 max_open_conns: 100
11 data_volume: /data
12 clair:
13 updaters_interval: 12
14 jobservice:
15 max_job_workers: 10
16 notification:
17 webhook_job_max_retry: 10
18 chart:
19 absolute_url: disabled
20 log:
21 level: info
22 local:
23 rotate_count: 50
24 rotate_size: 200M
25 location: /var/log/harbor
26 _version: 1.10.0
 
  
执行安装脚本
sh install.sh

 

 
六、创建项目和仓库
用户名admin
密码Harbor123456
登录创建项目,创建用户,给项目添加用户
 
七、故障排查
docker客户端访问harbor会报错:
http: server gave HTTP response to HTTPS client
原因是docker在1.3版本之后的docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以我们要设置一下客户端用http去访问server:
需要添加信任,有两个方法:
1、/etc/docker/daemon.json中添加 { "insecure-registries":[“ip:port"] }
2、/usr/lib/systemd/system/docker.service中ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 后面加--insecure-registry=ip:port
 
修改之后重启docker
我的docker版本是19.03.8,第一种方法不生效,用了第二种方法生效的
之后登录我们之前创建好的账户
docker login xxx.xxx.xxx.xxx:8000
之后就可以正常打标签上传镜像了
posted @ 2020-04-08 16:28  christine-ting  阅读(328)  评论(0编辑  收藏  举报