59519751 发表于 2019-2-20 10:15:41

安装harbor,利用docker

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

  前提:配置好yum源和epel源
  使用centos7系统,两台节点:
  node1:192.168.6.131
  node2:192.168.6.129
  安装docker:

  yum -y installdocker
  注意:安装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
http://s1.运维网.com/images/20181122/1542858649739541.png
  输入用户名默认为admin,密码即在harbor.cfg中设置的密码harbor_admin_password。
  登录后:
http://s1.运维网.com/images/20181122/1542858707925011.png
  新建项目:
  名称为:baseimages,勾选:公开。
http://s1.运维网.com/images/20181122/1542859087416551.png
  同理,在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
  查看:
http://s1.运维网.com/images/20181122/1542877573537402.png
  点击项目名称baseimages进入:
http://s1.运维网.com/images/20181122/1542877249484732.png
  已经把docker服务器本地的镜像成功推送上去harbor仓库了。
  点击名称baseimages/tomcat-base,可见镜像的Tag:
http://s1.运维网.com/images/20181122/1542877728846632.png
  为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仓库页面查看上传成功。
http://s1.运维网.com/images/20181122/1542879141593628.png
  如果要在任意一台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上配置:
  点击复制管理--》新建规则:

http://s1.运维网.com/images/20181123/1542953535728371.png
  在新建规则对话框中,填写:
  名称:可随意命名。

  描述:可随意写。

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

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

http://s1.运维网.com/images/20181123/1542954076238110.png
  点击目标--》点击新建目标:
http://s1.运维网.com/images/20181123/1542954102543069.png
  新建目标填写:
  目标名:baseimages(node2上的项目名称)

  目标URL:http://192.168.6.129(即node2的ip地址)
  用户名:admin(登录harbor的用户名)
  命名:123456(登录harbor的密码)
  验证远程证书:(先不勾选)
  点击测试连接,成功后点击确定即可。
http://s1.运维网.com/images/20181123/1542954624188000.png
  再点击新建规则,回到新建规则界面:
  此时,目标:就可自动识别出,上一步设置的内容了。
  触发模式:选择即刻,下面两个复选框都勾选上(保证仓库数据同步)。
http://s1.运维网.com/images/20181123/1542954790652436.png
  在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上的镜像了。



页: [1]
查看完整版本: 安装harbor,利用docker