Harbor 是 VMware 公司开源的企业级 Docker Registry 项目:
(1)Harbor 的优势:
(2)Harbor 架构组成:
1、Proxy:通过一个前置的反向代理统一接受浏览器,Docker客户端的请求,并将请求转发给后端不同的服务。
2、Registry:负责存储 Docker 镜像,并处理 docker push/pull 命令。
3、Core services:Harbor的核心功能,包括 UI、webhook、token 服务。
4、Database:为 core services 提供数据库服务。
5、Log collector:负责收集其他组件的 log,供日后进行分析。
其实,私有库的镜像最原始来源还是从公库中下载的,但是企业公司中为什么不都直接使用公库下载需要的镜像呢,允许使用 registry 搭建本地私有仓库,具备这些公库不具备的优点:
1、节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;
2、提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。
接下来,具备来搭建一下 docker私有仓库:
角色 | 需要安装的软件 |
---|---|
docker01 用于搭建私库(192.168.220.131) | docker 、Harbor 、docker-compose |
docker02(作为客户端,上传/下载 镜像) | docker |
(1)安装相关软件包:
安装 harbor:
[root@localhost abc]# tar zvxf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
安装 docker-compose:
[root@localhost abc]# cp docker-compose /usr/bin/
//将docker-compose 复制到/bin/目录下,系统识别后,就可以直接使用 docker-compose命令了。
(3)启动:
[root@localhost local]# cd harbor/
[root@localhost harbor]# ls
common docker-compose.yml harbor.v1.2.2.tar.gz NOTICE
docker-compose.clair.yml harbor_1_1_0_template install.sh prepare
docker-compose.notary.yml harbor.cfg LICENSE upgrade
[root@localhost harbor]# sh /usr/local/harbor/install.sh //开启
docker images //查看镜像
docker ps -a //查看容器
docker-compose ps //查看容器
用户名和密码等信息可以在 harbor.cfg 这个文件中,都可以查询到,如果不修改,默认的为:
用户名:admin
密 码:Harbor12345
1、手动创建镜像(点击 “+项目”):创建一个名为 myproject-kgc 的项目
2、镜像创建好之后,回到控制台,可以通过 docker 命令在本地通过 127.0.0.1 来登录和推送镜像:
docker login -u admin -p Harbor12345 http://127.0.0.1
3、从公库中下载一个镜像再上传到私库中:
[root@localhost harbor]# docker pull cirros //下载镜像
[root@localhost harbor]# docker tag cirros 127.0.0.1/myproject-kgc/cirros:v1 //镜像更换标签
[root@localhost harbor]# docker push 127.0.0.1/myproject-kgc/cirros
上传好之后,我们就可以在 Harbor 中看到这个镜像了:
(6)再打开一台虚拟机,作为客户端,连接 Harbor ,来上传和下载镜像:
1、首先要修改 /usr/lib/systemd/system/docker.service 配置文件,关联上私库,添加以下代码(一定要添加,否则会出现报错):
--insecure-registry 192.168.220.131
systemctl daemon-reload //重载
systemctl restart docker //重启
2、登录:
docker login -u admin -p Harbor12345 http://192.168.220.131
docker pull 192.168.220.131/myproject-kgc/cirros:v1
[root@localhost ~]# docker pull cirros
[root@localhost ~]# docker tag cirros:latest 192.168.220.131/myproject-kgc/cirros:v2
[root@localhost ~]# docker push 192.168.220.131/myproject-kgc/cirros:v2
5、此时,Harbor 中可以发现,又多了一个新上传的镜像:
我们也可以将我们常用的镜像下载下来,打好标签上传到私库中:
[root@localhost ~]# docker pull nginx
[root@localhost ~]# docker tag nginx:latest 192.168.220.131/myproject-kgc/nginx:v1
[root@localhost ~]# docker push 192.168.220.131/myproject-kgc/nginx:v1
[root@localhost harbor]# docker-compose down -v //关闭所有容器
[root@localhost harbor]# docker-compose up -d
添加用户:用户管理 -----> 创建用户 (注意密码需要大写+小写)
[root@localhost ~]# docker logout http://192.168.220.131
[root@localhost ~]# docker login http://192.168.220.131