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
输入用户名默认为admin,密码即在harbor.cfg中设置的密码harbor_admin_password。
登录后:
新建项目:
名称为:baseimages,勾选:公开。
同理,在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
查看:
点击项目名称baseimages进入:
已经把docker服务器本地的镜像成功推送上去harbor仓库了。
点击名称baseimages/tomcat-base,可见镜像的Tag:
为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仓库页面查看上传成功。
如果要在任意一台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上配置:
点击复制管理--》新建规则:
在新建规则对话框中,填写:
名称:可随意命名。
描述:可随意写。
源项目:即node1上的项目名称:baseimages
目标:添加目标(node2上的项目地址):
点击目标--》点击新建目标:
新建目标填写:
目标名:baseimages(node2上的项目名称)
目标URL:http://192.168.6.129(即node2的ip地址)
用户名:admin(登录harbor的用户名)
命名:123456(登录harbor的密码)
验证远程证书:(先不勾选)
点击测试连接,成功后点击确定即可。
再点击新建规则,回到新建规则界面:
此时,目标:就可自动识别出,上一步设置的内容了。
触发模式:选择即刻,下面两个复选框都勾选上(保证仓库数据同步)。
在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上的镜像了。