doceker-harbor私有仓库

2023-12-14 14:23:55

doceker 镜像 容器 仓库
仓库:保存镜像
私有:自定义用户的形式登录仓库,拉取或者上传镜像。 (内部管理的用户)
harbor:Vmware公司开发的开源的企业级的docker registry项目。
帮助用户快速的搭建一个企业级的docker仓库服务,支持中文。


harbor的特性:

基于角色进行控制,用户和仓库都是基于项目进行的,用户在每个项目中可以拥有不同权限
基于镜像:在不同的harbor实例之间进行复制。
harbor自带一个数据库,AD/LDP(类似于数据库中的表),对已存在的用户进行认证和管理。
镜像删除和垃圾回收,仓库中的镜像可以被删除(基于权限控制的),也可以回收占用的空间。
自带图形化界面,用户可以通过浏览器来对镜像仓库镜像管理。
审计管理,所有对镜像仓库的操作都可以被记录溯源。

支持API操作,应用程序编程接口,API是应用和应用用直接的接口,主机与主机直接用端口。

管理员可以基于API接口,和和更多的其他的程序进行集成。

harbor组件:

1、proxy:安装完harbor之后,它可以自动生成一个nginx的容器,自动对外映射,80端口,nginx前端代理,在harbor当中registry,UI,TOKEN,都在你滚下的反向代理后面。通过nginx代理,可以1把请求转发到后端不同的应用。
2、Registry:负责存储镜像,docker pull/puh的命令都有其负责。用户可以访问控制,不同的用户对docker镜像有不同的读写权限。Registry每次都会指向一个不同的Token,他会强制用户每次pull/push,都必须带一个合法的Token(公钥对),Registry会通过公钥对,进行解密验证,身份合法才能指定操作。
3、CORE SERVICES:harbor的核心功能,提供三个服务:

UI图形化界面
Webhook仓库上所有镜像的变化(增删改),都会传送给webhook,以实现UI界面上
Token签发每一次的额pull和push的公钥对,用来仓库之间进行权限认

4、database:harbor-db为核心core services提供数据库存储服务,用户权限,审计日志docker镜像的分组和项目信息。
5、job service:主要用于镜像复制,本地镜像可以同步到远程harbor上
6、log collector(harbor-log):统一日志收集工具。

harbor都是基于docker容器化部署的,docker-compose一键编排,安装。

实验

docker1?192.168.10.201?安装仓库docker-ce har-bor docker-compose
docker2192.168.10.204客户端?docker-ce har-bor docker-compose??
docker3192.168.10.202安装仓库--实现远程同步?docker-ce har-bor docker-compos

192.168.10.201

mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin/
chmod 777 /usr/local/bin/docker-compose
docker-compose -v
tar -xf harbor-offline-installer-v2.8.1.tgz -C /usr/local/
cd /usr/local/harbor/
cp harbor.yml.tmpl harbor.yml

vim harbor.yml

修改5行
hostname: 192.168.10.201

注释13-18行

登录密码
harbor_admin_password: 123456
./prepare

./install.sh

systemctl restart docker.service

出现这种报错

解决方法

重启:

systemctl restart docker.service

添加用户

将用户添加到项目中

新创成员:

项目管理员对该项目拥有所有权限。
维护人员读写权限修改其他配置项的权限。
开发者可以有读写权限,但是没有删除权限。
访客只能看,只有读权限。

上传本地仓库

下载
docker pull nginx:1.22.0

修改标签
docker tag nginx:1.22.0 127.0.0.1/library/nginx:201

登录
docker login -u admin -p123456 http://127.0.0.1

上传镜像到本地仓库
docker push 127.0.0.1/library/nginx:201

远程上传镜像

192.168.10.204

vim /usr/lib/systemd/system/docker.service

13行
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.10.201
注释
192.168.10.201 : 登录上传的IP地址

登录
docker login -u admin -p123456 http://192.168.10.201

下载http
docker pull http

修改标签
docker tag httpd:latest 192.168.10.201/library/http:204
格式:
docker tag 镜像名:标签 IP地址/路径/新镜像:标签

远程上传
docker push 192.168.10.201/library/http:204

同步镜像192.168.10.204

mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin/
chmod 777 /usr/local/bin/docker-compose
docker-compose -v
tar -xf harbor-offline-installer-v2.8.1.tgz -C /usr/local/
cd /usr/local/harbor/
cp harbor.yml.tmpl harbor.yml

修改5行
hostname: 192.168.10.201

注释13-18行

登录密码
harbor_admin_password: 123456

./prepare

./install.sh

systemctl restart docker.service

只能同步公开

同步私有的设置192.168.10.201

文章来源:https://blog.csdn.net/qq_61843057/article/details/134990992
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。