目录
一.Harbor的概述
Harbor被部署为多个Docker容器,因此可以部署在任何支持 Docker 的 Linux发行版上。(registry 为其核心组件)
1.harbor的优势
-
基于角色控制
-
基于镜像的复制策略
-
支持LDAP/AD
-
图像删除和垃圾收集
-
图像UI
-
审计
-
RESTful API
二.部署Harbor服务
[root@localhost /opt]# systemctl stop firewalld.service
[root@localhost /opt]# setenforce 0
[root@localhost /opt]# cd /usr/local/
##将docker-compose传到/usr/local目录下
[root@localhost /usr/local]# rz -E
rz waiting to receive.
[root@localhost /usr/local]# ls
bin docker-compose etc games include lib lib64 libexec mysql nginx php sbin share src
[root@localhost /usr/local]# chmod +x docker-compose
[root@localhost /usr/local]# mv docker-compose /usr/local/bin/
#将harbor-offline-installer-v1.2.2.tgz传入到/root目录下
[root@localhost ~]# rz -E
rz waiting to receive.
[root@localhost ~]# ls
anaconda-ks.cfg harbor-offline-installer-v1.2.2.tgz initial-setup-ks.cfg oyyy.sh
[root@localhost ~]# tar zxf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
[root@localhost ~]# cd /usr/local/harbor/
[root@localhost /usr/local/harbor]# vim harbor.cfg
5 hostname = 192.168.68.195
[root@localhost /usr/local/harbor]# sh /usr/local/harbor/install.sh
这就说明harbor软件安装完成
1.此时可真机访问serverIP
2.添加项目并填写项目名称
3.通过127.0.0.1来登陆和推送镜像
此时可使用 Docker 命令在本地通过 127.0.0.1 来登录和推送镜像。默认情况下,Register 服务器在端口 80 上侦听
[root@localhost /usr/local/harbor]# docker login -u admin -p Harbor12345 http://127.0.0.1
[root@localhost /usr/local/harbor]# docker pull cirros
[root@localhost /usr/local/harbor]# docker tag cirros:latest 127.0.0.1/oyyy/cirros:1 打标签
[root@localhost /usr/local/harbor]# docker push 127.0.0.1/oyyy/cirros:1
4.通过本地主机IP来登录
以上操作都是在harbor服务器本地操作,如果其他客户端想上传镜像到harbor,需要连接至harbor服务器! 因为,Docker Registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交互时可能会出现错误
1.解决方法
法一
[root@localhost /usr/local/harbor]# vim /usr/lib/systemd/system/docker.service
13 ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.68.195--containerd=/run/containerd/containerd.sock
[root@localhost /usr/local/harbor]# systemctl daemon-reload
[root@localhost /usr/local/harbor]# systemctl restart docker
[root@localhost /usr/local/harbor]# docker login -u admin -p Harbor12345 http://192.168.68.195
法二
[root@localhost ~]# cd /etc/docker/
[root@localhost /etc/docker]# vim daemon.json
{
"insecure-registries":["http://192.168.68.195"],
"registry-mirrors": ["https://mf7z1s6m.mirror.aliyuncs.com"]
}
这两种方法不要同时使用,可能会导致冲突,选择其一即可
2.下载镜像进行测试
[root@localhost /usr/local/harbor]# docker pull nginx
[root@localhost /usr/local/harbor]# docker tag nginx:latest 192.168.68.195/oyyy/nginx:v2
[root@localhost /usr/local/harbor]# docker push 192.168.68.195/oyyy/nginx:v2
5.维护管理Harbor
可以使用 docker-compose 来管理 Harbor。一些有用的命令如下所示,必须在与docker-compose.yml 相同的目录中运行。
[root@localhost /usr/local/harbor]# docker-compose down -v 卸载
[root@localhost /usr/local/harbor]# ./prepare 填充配置
[root@localhost /usr/local/harbor]# docker-compose up -d
6.创建Harbor用户
[root@localhost /usr/local/harbor]# docker logout 192.168.68.195
[root@localhost /usr/local/harbor]# docker login 192.168.68.195
[root@localhost /usr/local/harbor]# docker rmi 192.168.68.195/oyyy/nginx:v2
[root@localhost /usr/local/harbor]# docker pull 192.168.68.195/oyyy/nginx:v2
7.移除 Harbor 服务容器同时保留镜像数据/数据库
移除 Harbor 服务容器
[root@localhost /usr/local/harbor]# docker-compose down -v
[root@localhost /usr/local/harbor]# cd /data/registry/docker/registry/v2/repositories/
[root@localhost /data/registry/docker/registry/v2/repositories]# tar zcf oyyy.tar.gz oyyy/*
如需重新部署,需要移除 Harbor 服务器全部数据 #docker-compose down -v #如果需要重新部署,需要移除Harbor服务容器全部数据 #持久数据,如镜像,数据库等在宿主机的/data目录下,日志在宿主机的/var/log/Harbor目录下 rm -rf /data/database rm -rf /data/registry