本文主要内容是搭建harbor,并且记录自己的一些踩坑记录,为以后自己方便查阅。
一、harbor
1.1 harbor介绍
harbor介绍
Harbor是VMware公司开源的企业级Docker Registry项目,其目标是帮助用户迅速搭建一个企业级的Docker私有镜像仓库。Harbor基于官方Registry V2实现,提供了管理UI,基于角色的访问控制,LDAP集成、镜像复制、以及审计日志等企业用户需求的功能。
balabala...具体详情请见baidu
二、harbor安装
harbor安装没什么太大难度,具体请看代码。
2.1 首先需要安装docker
我选择的docker版本是19.03.8,系统是ubuntu16.04
参照官方安装教程安装
root@vps:~# apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
#安装依赖
root@vps:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
root@vps:~# apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
root@vps:~# add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
root@vps:~# apt-get update
root@vps:~# apt-get install docker-ce docker-ce-cli containerd.io
#安装docker,不出意外应该可以成功安装
2.2 安装docker-compose
root@vps:~# wget https://github.com/docker/compose/releases/download/1.26.0-rc3/docker-compose-Linux-x86_64
#下载docker-compose
root@vps:~# cp ./docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
#放入/usr/local/bin/文件夹
root@vps:~# chmod +x /usr/local/bin/docker-compose
#给执行权限
root@vps:~# docker-compose --version
docker-compose version 1.26.0-rc3, build 46118bc5
#查看版本
2.3 接下来安装harbor
我个人使用的是在线安装harbor
root@vps:~# wget https://github.com/goharbor/harbor/releases/download/v1.10.1/harbor-online-installer-v1.10.1.tgz
#下载harbor
root@vps:~# tar -zxvf harbor-online-installer-v1.10.1.tgz
#解压
root@vps:~# cd harbor/
#进入harbor目录
root@vps:~# vim harbor.yml
#编辑harbor.yml配置文件,每个参数后都有注释,这里就不解释了
root@vps:~# ./install.sh
#安装
2.4 harbor安装完成了
可以去登录进去看看了,默认有一个library公有仓库,可以删除,放个截图:
随心所欲修改吧。
2.5 问题
如果你有问题,请跟我接着看:
caddy反代问题
那么接下来问题来了,我使用的是caddy反向代理的,但是现在不是login登录不成功就是push不成功,显示认证失败,反正是各种错误。
解决方法:
如果想要caddy反代,开启https,并且外网使用的话,那么你就得大费周章了,我是这么做的:
首先再caddy下配置一下你镜像仓库的域名,并且添加自签证书,像这样
[root@server ~]# cat /usr/local/caddy/Caddyfile
https://你的域名 {
gzip
tls 你的邮箱
proxy / https://你的域名:端口号 {
websocket
transparent
}
}
并且把caddy的自签证书保存到本地,一会要用。我的caddy自签证书在这个文件夹里
[root@server sites]# pwd
/root/.caddy/acme/acme-v02.api.letsencrypt.org/sites
配置好之后,先不要访问,这时我们需要改hosts
[root@server ~]# cat /etc/hosts
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1 你的域名
改好hosts之后,你需要再次修改harbor.yml的配置文件,把hostname: 你的域名,并且把刚刚储存的自签证书上传到一个地方,更改公钥和key文件路径,就像一下这样
# Configuration file of Harbor
# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 你的域名
#填写你的域名
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 80
# https related config
https:
# https port for harbor, default is 443
port: 443
# The path of cert and key files for nginx
certificate: /root/crt/xxx.crt
private_key: /root/crt/xxx.key
#填写域名对应的证书文件和key文件
...
以下省略
END
这样部署好,访问你的域名,就可以成功登录,上传镜像了,如下所示:
root@vps:~# docker pull xxx/test/nps:0.26.5
0.26.5: Pulling from test/nps
89b6e6d4b47e: Pull complete
f65b3d41449d: Pull complete
Digest: sha256:d987274633ad3458f8d8437c15cd87b44f5b70145037729523b37b5943cf6e82
Status: Downloaded newer image for xxx/test/nps:0.26.5
三、备份一下命令
docker tag 镜像名[:版本号] 你的仓库地址/仓库名称/镜像名称[:版本号]
# 为镜像文件打tag
docker push 你的仓库地址/仓库名称/镜像名称[:版本号]
#上传镜像
四、截图
至此,完成!!!
滴!访客卡!请上车的乘客系好安全带,现在是:Mon Mar 22 2021 19:10:55 GMT+0800 (中国标准时间)
滴!访客卡!请上车的乘客系好安全带,现在是:Wed Apr 15 2020 15:44:59 GMT+0800 (中国标准时间)