harbor镜像仓库的安装与使用
Posted 张侦毅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了harbor镜像仓库的安装与使用相关的知识,希望对你有一定的参考价值。
文章目录
harbor
什么是harbor
harbor
是docker
的镜像仓库,通过可视化的界面使我们能够更轻易的维护众多的docker
镜像。
为什么要使用harbor
在现在的项目开发中,越来越多的用到了微服务架构,而微服务架构是与docker
紧密相关的,也就是说,在我们谈论微服务时,其实我们不可避免的就会谈到docker
,而由于微服务的众多(通过将单个复杂的单体项目拆分成的众多微服务),加之产品迭代的时间漫长,因而我们不可避免的就需要维护众多的docker
微服务镜像版本,在面对如此众多的docker
镜像版本时,我们迫切的需要使用一种基于可视化的界面来操作,维护众多的版本信息,因而我们就不可避免的会使用到镜像仓库——harbor
另外一个使用harbor
的原因是,由于绝大部分的镜像都很大,少则上百兆(比如说openjdk:8
,有的是500M
),多则超过一个G
都是有可能的。而默认的,docker
仓库地址为国外服务器,因而在我们拉取基础镜像时,往往会受制于网络限制,导致拉取缓慢亦或是拉取失败的情况,从这方面来说,我们也应该搭建属于自己的harbor
镜像仓库。
软件安装
软件与环境
- 操作系统
CentOS-7
- harbor版本
harbor-offline-installer-v1.9.1.tgz
- 下载地址
https://github.com/goharbor/harbor/releases
安装软件
解压缩软件压缩包
解压缩下载的软件压缩包
[root@master ~]# tar -xvf harbor-offline-installer-v1.9.1.tgz
harbor/harbor.v1.9.1.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/harbor.yml
修改配置文件
进入harbor
文件夹,在这里我们可以看到harbor
的配置文件harbor.yml
,编辑该配置文件。
在harbor
的配置文件harbor.yml
中,我们一般需要修改的地方主要有以下几点:
hostname: reg.mydomain.com
http:
port: 80
harbor_admin_password: Harbor12345
data_volume: /data
其中hostname
表示的是本机的域名,port
表示本机的端口号,harbor_admin_password
表示的是harbor
默认的登陆密码,data_volume
表示的是harbor
数据的挂载点。
我们可以根据自己的情况进行修改,比如说我的修改结果如下:
hostname: hub.lyc.com
http:
port: 10010
harbor_admin_password: Harbor12345
data_volume: /usr/dev/harbor
修改本机的域名
由于在harbor
的配置文件中含有域名,而该域名我们又修改了,所以说我们也得需要修改本机的域名,其域名配置文件所在位置如下:
/etc/hosts
在其中添加自己的域名:
127.0.0.1 hub.lyc.com
测试自己域名的配置是否正确
[root@master harbor]# ping hub.lyc.com
PING hub.lyc.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.038 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.090 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.090 ms
...
当我们看到上述结果时,这就说明我们的域名其实是已经配置正确了。
安装软件
执行harbor
文件夹中的脚本(注意,一定要确保本机的docker已处于启动状态,否则无法执行安装操作!!!)
./install.sh
当我们看到如下结果时,这就说明我们的harbor
已经安装完成。
[Step 3]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating registry ... done
Creating harbor-portal ... done
Creating redis ... done
Creating harbor-db ... done
Creating registryctl ... done
Creating harbor-core ... done
Creating nginx ... done
Creating harbor-jobservice ... done
✔ ----Harbor has been installed and started successfully.----
Now you should be able to visit the admin portal at http://hub.lyc.com.
For more details, please visit https://github.com/goharbor/harbor .
访问harbor
访问harbor
的格式如下:
[IP地址]:[端口号]
比如说我的harbor
访问地址如下:
http://192.168.238.128:10010
其展示的界面如下:
harbor
默认的账号为admin
,密码就是我们所修改的密码,当然,这里由于我本身并没有修改密码,因而此处我的密码仍然是Harbor12345
。
登陆我们刚才的账户,此时我们就可以看到起主界面,如下:
推送镜像文件到harbor镜像仓库
给镜像添加harbor格式tag
在harbor
镜像仓库搭建完成后,接下来就是上传我们的镜像了。
这里我选择我们最常使用的openjdk:8
镜像,以此来演示镜像上传操作。
首先就是先确保我们的docker
中已经下载了openjdk:8
镜像,如下:
[root@master harbor]# docker images | grep openjdk
openjdk 8 27da2af61908 3 months ago 488MB
harbor
格式的镜像tag
名称格式如下:
[harbor域名]:[harbor端口号]/[仓库名称]/[镜像名称]:[镜像tag]
比如说我的openjdk:8
对应的harbor
镜像名称为:
hub.lyc.com:10010/os/openjdk:8
其对应的tag
标签生成指令如下
docker tag openjdk:8 hub.lyc.com:10010/os/openjdk:8
使用docker登陆harbor
为了将新打的tag
镜像推送到镜像仓库,我们首先得使用docker
登陆harbor
。
docker
登陆harbor
的格式如下:
docker login [harbor域名]:[harbor端口号]
比如说我的登陆方式为:
docker login hub.lyc.com:10010
其登陆后的结果如下:
[root@master harbor]# docker login hub.lyc.com:10010
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
为了避免以后每次登陆harbor
都需要重新输入域名等信息,因而我们有必要将harbor
域名添加到docker
配置文件中。
docker
配置文件地址如下:
/etc/docker/daemon.json
在该配置文件中,我们需要添加如下信息:
"insecure-registries": ["hub.lyc.com:10010"]
对应的我的添加信息如下:
[root@localhost ~]# cat /etc/docker/daemon.json
"registry-mirrors": ["https://3exwebwf.mirror.aliyuncs.com"],
"data-root":"/data/docker",
"insecure-registries": ["hub.lyc.com:10010"]
当我们添加完成后,我们需要执行docker
的重启操作
systemctl stop dokcer
systemctl start docker
当完成上述信息后,以后我们再向harbor
推送镜像时,我们就不需要再次登录了。
创建镜像仓库
在向镜像仓库推送镜像前,我们首先得创建一个镜像仓库,就像我们的新镜像名
hub.lyc.com:10010/os/openjdk:8
中展示的一样,创建名为os
的镜像仓库。
镜像仓库的创建方式如下,在harbor
的主界面中,点击【新建项目】按钮。
在弹出的对话框中,输入os
,然后点击【确定】按钮。
创建的镜像仓库如下:
向harbor中推送镜像
在进行了前面的操作后,最后的镜像推送操作就变得非常简单了,如下:
[root@master ~]# docker push hub.lyc.com:10010/os/openjdk:8
The push refers to repository [hub.lyc.com:10010/os/openjdk]
b575bb71cbb6: Pushed
7955da51da82: Pushed
c64652873162: Pushed
a4e797bc3f15: Pushed
392f356944ff: Pushed
15210a41d4ee: Pushed
e2a8a00a83b2: Pushed
8: digest: sha256:312e104c404dad2e9dca98d4f949b224611f7f1a1de983314273a4a03fda13bd size: 1795
在harbor
的镜像仓库中,我们就可以看到推送的结果了,如下:
以上是关于harbor镜像仓库的安装与使用的主要内容,如果未能解决你的问题,请参考以下文章
Linux运维容器篇 docker私有仓库harbor生产搭建
Linux运维容器篇 docker私有仓库harbor生产搭建
Linux运维容器篇 docker私有仓库harbor生产搭建