飞羽

harbor制作私有docker仓库
本文主要内容是搭建harbor,并且记录自己的一些踩坑记录,为以后自己方便查阅。
扫描右侧二维码阅读全文
24
2020/03

harbor制作私有docker仓库

本文主要内容是搭建harbor,并且记录自己的一些踩坑记录,为以后自己方便查阅。

harbor logo

一、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公有仓库,可以删除,放个截图:

harbor_web


随心所欲修改吧。

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 你的仓库地址/仓库名称/镜像名称[:版本号]

#上传镜像

四、截图

成果截图

至此,完成!!!

文章名: 《harbor制作私有docker仓库》

文章链接:https://blog.8086k.cn/archives/73/

联系方式:1412981048@qq.com

除特别注明外,文章均为飞羽小随笔原创,转载时请注明本文出处及文章链接
Last modification:March 24th, 2020 at 09:32 pm
如果觉得我的文章对你有用,请随意赞赏

One comment

  1. Google Chrome 80.0.3987.163 Windows 10

    滴!访客卡!请上车的乘客系好安全带,现在是:Wed Apr 15 2020 15:44:59 GMT+0800 (中国标准时间)

Leave a Comment