Harbor-私有镜像仓库的安装部署
Harbor-私有镜像仓库的安装部署
仓库的概念也就是用于存储,docker仓库用于存储镜像。
镜像构建完成后,很容易可以在宿主机上运行,但是如果要在其他服务器上运行,则需要考虑镜像的分发,存储的问题。
公有/私有仓库
Docker Registry有两种形式
公开,开放给所有用户,提供给所有用户搜索,拉取,提交,更新镜像,还免费保管用户镜像数据。
- 此类服务受限于网络限制,无法及时立即获取所需镜像,简单说就是需要用什么得现下载,得看网速
- 优点是可以获取绝大部分公开的镜像,方便使用
私有范围的Registry服务,用在学校,企业内网的研发环境
- 局域网环境,保证了镜像拉取速度
- 保证核心镜像数据安全
- 存在镜像不丰富问题
公开服务仓库
最常见的Registry是Docker Hub,也是docker默认允许用户管理镜像的Registry服务,拥有大量高质量的官方镜像。
由于网络地域原因,公开服务在国内访问较慢,也就出现了针对镜像服务的加速器。
- [阿里云加速器](http://ebook-p6.yuchaoit.cn/容器/www.yuchaoit.cn)
- DaoCloud加速器
- 灵雀云加速器
- 等等
使用加速器,可以从国内的地址获取Docker Hub的镜像,速度会快很多。
私有服务仓库
除了私用公开服务外,还可以在自己本地搭建私有Docker Registry。
开源的Docker Registry镜像只提供了Docker Registry API的功能,没有图形化功能。
1.部署docker-harbor
官网给出了安装需要的最低硬件和软件的条件:https://goharbor.io/docs/2.0.0/install-config/installation-prereqs/
最低硬件要求:
资源 | 最低限度 | 推荐的 |
---|---|---|
CPU | 2核 | 4 核 |
内存 | 4GB | 8 GB |
磁盘 | 40 GB | 160 GB |
最低软件要求:
软件 | 版本 |
---|---|
Docker engine | 版本 17.06.0-ce+ 或更高版本 |
Docker Compose | 版本 1.18.0 或更高版本 |
OpenSSL | 最新的优先 |
在线安装和离线安装
可以从官方发布页面下载 Harbor 安装程序。下载在线安装程序或离线安装程序。
在线安装程序:在线安装程序从 Docker 中心下载 Harbor 镜像。因此,安装程序的尺寸非常小。
离线安装程序:如果要部署 Harbor 的主机没有连接到 Internet,请使用离线安装程序。离线安装程序包含预先构建的映像,因此它比在线安装程序大
在线和离线安装程序的安装过程几乎相同。
这里我主要使用离线安装,因为在线安装因为墙、内部网络等原因,有的同学会下载很慢,而离线安装包都包含了预先构建的镜像,所以直接现在离线安装包最好!
离线安装
到 官方发布 页面下载离线安装包:
安装docker-compose
yum install docker-compose -y
[root@docker-200 /www.yuchaoit.cn/test_dockerfile/tomcat_web/web_base]#docker-compose version
docker-compose version 1.18.0, build 8dd22a9
docker-py version: 2.6.1
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
上传harbor离线安装包
mkdir -p /data/docker-harbor/
cd /data/docker-harbor/
上传安装包
tar -zxvf harbor-offline-installer-v1.9.0-rc1.tgz
[root@node3 docker-harbor]# ll
total 601868
drwxr-xr-x 3 root root 140 Oct 17 09:07 harbor
-rw-r--r-- 1 root root 616312579 Oct 16 23:19 harbor-offline-installer-v1.9.0-rc1.tgz
cd harbor
[root@node3 harbor]# ll
total 605152
drwxr-xr-x 3 root root 20 Oct 16 23:28 common
-rw-r--r-- 1 root root 5287 Oct 17 09:07 docker-compose.yml
-rw-r--r-- 1 root root 619632806 Sep 4 2019 harbor.v1.9.0.tar.gz
-rw-r--r-- 1 root root 5800 Oct 16 23:37 harbor.yml
-rwxr-xr-x 1 root root 5088 Sep 4 2019 install.sh
-rw-r--r-- 1 root root 11347 Sep 4 2019 LICENSE
-rwxr-xr-x 1 root root 1748 Sep 4 2019 prepare
可以看到文件夹有一堆文件,其中最主要的是 harbor.yml.tmpl和 install.sh ,他们分别是配置文件和安装执行文件。
编辑harbor.yml,最主要是更改以下几点,其他的保持默认即可:
harbor.yml
示例模板:
[root@node3 harbor]# grep -Ev '^$|#' harbor.yml
hostname: 192.168.10.110
http:
port: 8080
harbor_admin_password: 123456
database:
password: root123
max_idle_conns: 50
max_open_conns: 100
data_volume: /data
clair:
updaters_interval: 12
jobservice:
max_job_workers: 10
notification:
webhook_job_max_retry: 10
chart:
absolute_url: disabled
log:
level: info
local:
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor
_version: 1.9.0
proxy:
http_proxy:
https_proxy:
no_proxy: 127.0.0.1,localhost,.local,.internal,log,db,redis,nginx,core,portal,postgresql,jobservice,registry,registryctl,clair
components:
- core
- jobservice
- clair
然后继续用命令执行安装 ./install.sh
当出现红箭头指向的提示的时候,就表示安装成功了!
然后根据在harbor.yml文件中配置的端口与IP地址(或域名)进行访问
现在Harbor已经可以使用了
由于我部署的时候没有使用HTTPS,所以使用docker登录的时候会出现以下异常信息
原因:Docker自从1.3.X
之后docker registry
交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误。
解决办法:
找到docker 的 daemon.json 配置文件,CentOS 7 的路径:/etc/docker/daemon.json,如果路径下没有这个文件自己创建即可。然后再配置文件里加上:
操作完后让这个文件生效:
修改完成后reload配置文件
sudo systemctl daemon-reload
重启docker服务
sudo systemctl restart docker.service
尝试docker login
[root@node3 harbor]# docker login http://192.168.10.110:8080/
Username: admin
Password:
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
表示登录成功