怎样做运营一个网站,网站开发php岗位职责,wordpress会员卡,射阳网站开发docker 三大组件 镜像 容器 仓库
仓库#xff1a;保存镜像
私有#xff0c;自定义用户的形式登录仓库#xff0c;拉去或者上传镜像#xff08;内部管理的用户#xff09;
harbor#xff1a;是由VMware公司开发的#xff0c;开源的企业级的docker registry 项目 。
帮…docker 三大组件 镜像 容器 仓库
仓库保存镜像
私有自定义用户的形式登录仓库拉去或者上传镜像内部管理的用户
harbor是由VMware公司开发的开源的企业级的docker registry 项目 。
帮助用户快速的搭建一个企业级的docker仓库的服务。
1.harbor的特性
1.基于角色进行控制用户和仓库都是基于项目进行的用户在每个项目中可以拥有不同的权限
2.基于镜像在不同的harbor实例之间进行复制
3.harbor自带一个数据库AD/LDAP类似于数据库中的表用于对已经存在的用户进行认证和管理。
4.镜像删除和垃圾回收仓库中的镜像可以被删除基于权限控制的也可以回收镜像占用的空间。
5.图形化界面的用户可以直接通过浏览器来对镜像仓库进行管理。
6.审计管理所有对镜像仓库的操作都可以被记录溯源。
7.支持API操作。
API的程序接口端口主机和主机之间的通信API是应用和应用之间的接口。管理员可以基于API调用接口和更多的其他的程序进行集成。
2.harbor的组件
1.proxy安装完了harbor之后他会自动生成一个nginx的容器自动对外映射80端口nginx的前端代理在harbor当中 registryUITOKEN 都在nginx的反向代理后面。通过nginx的代理可以把请求转发到后端不同的应用。
2.Registry负责存储镜像docker pull /push的命令都是由其负责。用户进行访问控制不同的用户对docker镜像有不同的读写权限。Resgistry每次都要会指向一个不同的Token强制用户每次的pull/push都必须带一个合法的token公钥对Resgistry会通过公钥对进行解密验证身份合法才能指定操作。
3.CORE SERVICESharbor的核心功能提供三个服务
1.UI提供图形化界面。
2.webhook仓库上所有镜像的变化增删改都会传送给webhook以实现在UI界面上。
3.Token签发每一次push和pull的公钥对用来和仓库进行权限认证。
4.databaseharbor-db 为核心core services 提供数据库存储服务用户权限审计日志 docker镜像的分组和项目信息
5.jobservice主要用于镜像的复制本地镜像可以同步到远程harbor上
6.log collectorharbor-log 统一日志收集工具
3.实验
docker1 安装仓库 192.168.233.40 docker-ce har-bor docker-compose
docker2 客户端 192.168.233.50 docker-ce har-bor
docker3 安装仓库-----实现远程同步 192.168.233.60 docker-ce har-bor 所有
systemctl stop firewalld
setenforce 0 docker1
cd /opt
ls
把compose 和harbor 拖进来
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 ./prepare #编译环境
./install.sh
docker ps
访问192.168.233.40
密码123456
docker pull nginx:1.22.0 docker tag nginx:1.22.0 127.0.0.1/library/nginx:dn1
docker images
docker push 127.0.0.1/library/nginx:dn1
docker login -u admin -p123456 http://127.0.0.1
docker push 127.0.0.1/library/nginx:dn1
新建项目 docker login -u guoqi -p Guoqi666 http://127.0.0.1
docker tag nginx:1.22.0 127.0.0.1/dntest/nginx:gq1
docker push 127.0.0.1/dntest/nginx:gq1
发现权限不够
在项目dntest docker push 127.0.0.1/dntest/nginx:gq1
##角色
访客只有看只有读权限
开发者可以有读写权限但是没有删除权限
维护人员读写权限修改其他配置的权限
项目管理员对该项目拥有所有权限
## docker2
vim /usr/lib/systemd/system/docker.service
13 行 ExecStart/usr/bin/dockerd --insecure-registry 192.168.66.14 systemctl daemon-reload
systemctl restart docker
docker login -u guoqi -p Guoqi666 http://192.168.233.40 docker pull logstash docker images
docker tag logstash:latest 192.168.233.40/dntest/logstash:gq1
docker push 192.168.233.40/dntest/logstash:gq1 访问192.168.233.40可以见到 docker3
把compose跟前面一样的操作
把harbor 移到opt 一样的操作
vim harbor.yml
把compose 和harbor 拖进来
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 ./prepare
./install.sh
192.168.233.60 这时候下面就复制成功了可以去项目查看结果