共计 6257 个字符,预计需要花费 16 分钟才能阅读完成。
Harbor 是 Vmwar 公司开源的 企业级的 Docker Registry 管理项目,它主要 提供 Dcoker Registry 管理 UI,可基于角色访问控制, AD/LDAP 集成,日志审核等功能,完全的支持中文。Harbor 的所有组件都在 Dcoker 中部署,所以 Harbor 可使用 Docker Compose 快速部署。
注:由于 Harbor 是基于 Docker Registry V2 版本,所以 docker 版本必须 > = 1.10.0 docker-compose >= 1.6.0
开源项目地址:https://github.com/vmware/harbor
一、使用 docker compose 快速部署:
首先用 git 下载 源码。
git clone https://github.com/vmware/harbor
下载完以后 进入 harbor/Deploy 目录
初始化配置,配置文件为 harbor.cfg
## Configuration file of Harbor
# hostname 设置访问地址,支持 IP,域名,主机名,禁止设置 127.0.0.1
hostname = reg.mydomain.com
# 访问协议,可设置 http,https
ui_url_protocol = http
# 邮件通知, 配置邮件通知。
email_server = smtp.mydomain.com
email_server_port= 25
email_username= sample_admin@mydomain.com
email_password= abc
email_from= admin <sample_admin@mydomain.com>
email_ssl= false
# harbor WEB UI 登陆使用的密码
harbor_admin_password = Harbor12345
# 认证方式,这里支持多种认证方式,默认是 db_auth,既 mysql 数据库存储认证。
# 这里还支持 ldap 以及 本地文件存储方式。
auth_mode = db_auth
# ldap 服务器访问地址。
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn= uid=%s,ou=people,dc=mydomain,dc=com
# mysql root 账户的 密码
db_password = root123
self_registration= on
use_compressed_js= on
max_job_workers= 3
verify_remote_cert= on
customize_crt= on
# 一些显示的设置.
crt_country = CN
crt_state= State
crt_location= CN
crt_organization= organization
crt_organizationalunit= organizational unit
crt_commonname= example.com
crt_email= example@example.com
修改为配置文件以后 运行./prepare 脚本更新配置, 出现如下信息表示 更新完毕.
执行完毕会生成一个 docker-compose.yml 文件
配置 docker-compose.yml 文件中的 挂载目录,启动方式等选项。
使用 pip install docker-compose 安装 docker-compose
执行 docker-compose up -d 构建 docker 容器
docker hub 下载镜像实在是慢,Harbor 提供了一个 配置本地镜像的配置: cd harbor/contrib/prebuild-install
运行 update_compose.sh 配置本地的镜像仓库
我们也可以配置 –registry-mirror= 来加速下载 使用 daocloud 提供的 mirror http://b438f72b.m.daocloud.io
完成以后,使用 http://userIP/ 访问 Harbor
使用 帐号 admin, 密码为 配置文件中 harbor_admin_password = Harbor12345 的密码 登陆
至此,Harbor 已经搭建完成,具体在 WEB UI 下面操作也是非常的简单,只有几个选项。
docker 需要上传 push 镜像,需要在 docker 中配置 –insecure-registry userIP 或者在 nginx 中配置 https
配置完毕以后,重启 docker
使用 docker login userIP 登陆 Harbor
[root@swarm-manager ~]#docker login 10.6.0.192
Username (admin): admin
Password:
Login Succeeded
查看 本地 images
[root@swarm-manager ~]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mongodb latest 8af05a33e512 3 weeks ago 958.4 MB
sath89/Oracle-12c latest 7effebcd18ee 11 weeks ago 5.692 GB
CentOS latest 778a53015523 4 months ago 196.7 MB
tag 修改 image 的名字. 格式为: userip/ 项目名 /image 名字: 版本号
[root@swarm-manager ~]#docker tag mongodb 10.6.0.192/jicki/mongodb:1.0
[root@swarm-manager ~]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
10.6.0.192/jicki/mongodb 1.0 8af05a33e512 3 weeks ago 958.4 MB
mongodb latest 8af05a33e512 3 weeks ago 958.4 MB
sath89/oracle-12c latest 7effebcd18ee 11 weeks ago 5.692 GB
centos latest 778a53015523 4 months ago 196.7 MB
push 镜像到 Harbor
[root@swarm-manager ~]#docker push 10.6.0.192/jicki/mongodb:1.0
The push refers to a repository [10.6.0.192/jicki/mongodb]
c1e4cd91bcd4: Pushed
d9a948970255: Pushed
dd9b001e77ee: Pushed
625440e212f2: Pushed
75fa23acbccb: Pushed
fd269370dcf4: Pushed
44e3199c59b3: Pushed
db3474cfcfbc: Pushed
5f70bf18a086: Pushed
6a6c96337be1: Pushed
1.0: digest: sha256:c7d2e619d86089ffef373819a99df1390c4f2df4aeec9c1f7945c55d63edc670 size: 2824
登陆 WEB UI,选择项目,项目名称 jicki,进入 既可查看刚才上传的 image
至此,Harbor 都已经部署完成。
二、配置 Docker 镜像复制。
配置 2 个 Harbor
IP 1 = 10.6.0.192
IP 2 = 10.6.0.196
在 10.6.0.192 上面我们已经 push 了一个 镜像,所以我们将这台当作 主节点,10.6.0.196 为从复制节点。
进入 WEB UI 选择 项目,选择项目为 jicki , 然后选择 复制 选项。
点击 新增策略
创建完毕以后,我们可以看 复制策略 已经有一栏。
复制任务里面 也已经有一个任务。
稍等一会,可以看到 复制任务里面 那个任务已经提示 完成。
登陆 10.6.0.196 的 WEB UI
我们可以看到,镜像已经复制过来。而且连 日志操作 也会复制过来。
harbor 升级
一、
cd harbor/Deploy/
执行 docker-compose down
删除原有的容器
二、
备份整个目录
mv harbor/ /tm/harbor
三、
重新 下载新的源码
git clone https://github.com/vmware/harbor
四、
如果 harbor 是迁移到其他服务器,请先执行数据备份
cd harbor/migration/
修改 migration.cfg 文件里面的 数据库 帐号密码
docker build -t migrate-tool .
五、
运行一个临时数据库容器,注意:/data/database 为你设置的挂载数据库的目录 /path/to/backup 数据备份的目录
数据库备份:
docker run -ti –rm -v /data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backup migrate-tool backup
六、
数据库还原:
docker run -ti –rm -v /data/database:/var/lib/mysql migrate-tool up head
七、
对比一下配置文件:
cd harbor/Deploy/
diff harbor.cfg /tmp/harbor/Deploy/harbor.cfg
diff docker-compose.yaml /tmp/harbor/Deploy/docker-compose.yaml
如果修改了端口 必须更新 cd harbor/Deploy/config/nginx/nginx.conf 里面的端口
八、
执行 ./prepare 生成新的配置文件
cd /harbor/Deploy/
./prepare
九、
最后 build 新的镜像,启动容器
cd /harbor/Deploy/
docker-compose up –build -d
十、
登陆 WEB UI 检查是否 OK
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-09/134954.htm