harbor是单机上用的一种docker编排工具。


前提:配置好yum源和epel源

使用centos7系统,两台节点:

node1:192.168.6.131

node2:192.168.6.129


安装docker:

yum -y install  docker


注意:安装docker时,可使用extra仓库中yum仓库安装,也可使用阿里云的镜像安装。


默认使用extra仓库安装docker时,直接yum install docker即可,要使用阿里云安装docker,则:yum install dcoker-ce


安装aliyun的yum源:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


启动docker服务:

systemctl start docker

systemctl enable docker


验证docker版本及相关信息:

docker version

docker info


由于docker官网在国内访问慢,可配置加速器,使用aliyun:

注册或登录阿里云账号,点击左侧的镜像加速器,将会得到一个专属的加速地址,且下面有使用的配置说明;

创建docker配置文件:

]# vim /etc/docker/daemon.json

{

    "registry-mirrors": ["https://26mcee8g.mirror.aliyuncs.com"]

}



验证docker加速:

docker search centos


注:docker相关的命令使用,后续在写篇文件。


下载Harbor:

下载地址为:https://github.com/vmware/harbor/releases

由于网络较慢,在线安装很慢,推荐下载离线包安装。

到github地址下载离线包:https://github.com/vmware/harbor


wget https://github.com/vmware/harbor/releases/download/v1.2.2/harbor-offline-installer-v1.2.2.tgz


安装harbor依赖包:

yum install python-pip

pip install docker-compose


解压harbor安装包:

tar xf harbor-offine-installer-v1.5.3.tgz

cd harbor


修改harbor配置文件:

vim harbor.cfg

hostname = 192.168.6.131

harbor_admin_password = 123456

其他不变。


安装harbor:

./install.sh

如果有报错,解决即可安装成功。


浏览器访问:http://192.168.6.131

安装harbor,利用docker-compose实现自建docker镜像仓库_第1张图片


输入用户名默认为admin,密码即在harbor.cfg中设置的密码harbor_admin_password。


登录后:

安装harbor,利用docker-compose实现自建docker镜像仓库_第2张图片


新建项目:

名称为:baseimages,勾选:公开。

安装harbor,利用docker-compose实现自建docker镜像仓库_第3张图片


同理,在node2上也做如上操作,且浏览器访问:http://192.168.6.129,创建相同的项目。


在任意一台安装有docker的主机上:

测试登录harbor服务器:

编辑docker服务脚本文件:

vim /usr/lib/systemd/system/docker.service

添加:

ExecStart= .... --insecure-registry 192.168.6.131 --insecure-registry 192.168.6.129 ...


重启docker:

systemctl daemon-reload

systemctl restart docker


登录harbor:

docker login 192.168.6.131

Username: admin

Password: 123456

显示:

Login Succeeded

登录成功。


会自动生成认证文件:

cat /root/.docker/config.json 

{

"auths": {

"192.168.6.131": {

"auth": "YWRtaW46MTIzNDU2"

}

}

}


查看docker镜像:

docker images


向harbor的docker仓库上传镜像:

docker push 192.168.6.131/baseimages/tomcat-base


登录harbor服务页面,浏览器访问:192.168.6.131

查看:

安装harbor,利用docker-compose实现自建docker镜像仓库_第4张图片

点击项目名称baseimages进入:

安装harbor,利用docker-compose实现自建docker镜像仓库_第5张图片

已经把docker服务器本地的镜像成功推送上去harbor仓库了。

点击名称baseimages/tomcat-base,可见镜像的Tag:

安装harbor,利用docker-compose实现自建docker镜像仓库_第6张图片


为node2上的harbor仓库准备镜像:

docker tag 192.168.6.131/baseimages/tomcat-base:7.5.1804 192.168.6.129/baseimages/tomcat-base:7.5.1804


向node2上的harbor仓库上传镜像:

docker push 192.168.6.129/baseimages/tomcat-base:7.5.1804

此时,拒绝上传,需要先登录node2上harbor仓库。


登录node2上的harbor:

docker login 192.168.6.129

登录成功后,再次上传:

docker push 192.168.6.129/baseimages/tomcat-base:7.5.1804

即可成功。


同理,在浏览器登录harbor仓库页面查看上传成功。

安装harbor,利用docker-compose实现自建docker镜像仓库_第7张图片


如果要在任意一台docker服务器下载harbor仓库的镜像,还需要配置docker.service服务脚本文件:

vim /usr/lib/systemd/system/docker.service

添加:

ExecStart= .... --insecure-registry 192.168.6.131 --insecure-registry 192.168.6.129 ...


一般只修改一台服务的配置文件,然后分发给其他主机,而不用每台主机手动修改配置文件:

如把node1的配置文件复制到nod2上:

scp /usr/lib/systemd/system/docker.service root@node2:/usr/lib/systemd/system/


步骤同上,重启docker:

systemctl daemon-reload

systemctl restart docker


下载镜像:

docker pull 192.168.6.131/baseimages/tomcat-base:7.5.1804

成功下载。


上传也是同理,需要先登录后,才能有权限上传镜像,这样自建harbor的docker仓库就搭建完成了。

以上实现了搭建2台docker仓库服务器。


最后,在配置两台harbor服务器进行双向同步,现在其中一台harbor的web页面配置:


实现目的:node2上harbor仓库有任何增加或删除的仓库变化,node1自动同步node2。

在node1上配置:

点击复制管理--》新建规则:

安装harbor,利用docker-compose实现自建docker镜像仓库_第8张图片


在新建规则对话框中,填写:

名称:可随意命名。

描述:可随意写。

源项目:即node1上的项目名称:baseimages

目标:添加目标(node2上的项目地址):

安装harbor,利用docker-compose实现自建docker镜像仓库_第9张图片


点击目标--》点击新建目标:

安装harbor,利用docker-compose实现自建docker镜像仓库_第10张图片

新建目标填写:

目标名:baseimages(node2上的项目名称)

目标URL:http://192.168.6.129(即node2的ip地址)

用户名:admin(登录harbor的用户名)

命名:123456(登录harbor的密码)

验证远程证书:(先不勾选)

点击测试连接,成功后点击确定即可。

安装harbor,利用docker-compose实现自建docker镜像仓库_第11张图片


再点击新建规则,回到新建规则界面:

此时,目标:就可自动识别出,上一步设置的内容了。

触发模式:选择即刻,下面两个复选框都勾选上(保证仓库数据同步)。

安装harbor,利用docker-compose实现自建docker镜像仓库_第12张图片

在node1上设置了单项同步,同理,在node2上根据如上步骤设置向node1同步,使其node2自动同步node1上的仓库。

(配置过程同上,省略)。


验证双向同步:

在node1上登录harbor,把docker镜像上传本地的harbor仓库:

docker login 192.168.6.131

输入用户名:admin

输入密码:123456


准备docker镜像:

docker tag 1cef12f6c83e 192.168.6.131/baseimages/nginx-base:v1


上传镜像:

docker push 192.168.6.131/baseimages/nginx-base


然后,稍等一会,较慢,在node2上的web页面观察仓库同步node1上的镜像了。