镜像仓库网站
- 需要科学上网,除了docker官方的,其他都需要梯子
红帽的:quay.io
谷歌的:gcr.io
docker的:hub.docker.com - 网易的仓库中的centos会自动封装常用命令
1.使用Docker官方的仓库
如果需要上传图片的话,可以先上传到在免费的路过图床上,之后插入链接即可
-
创建用户
一开始是什么也没有的,可以create repository创建新的仓库 -
创建仓库,镜像(组)
仓库名——镜像名——相关描述
现在可以创建一个私有的仓库,以前只有花钱才能有私有的 -
markdown格式
视图——源码模式
可以看见底层是怎么写的,无论是githup还是docker的说明都是基于markdown格式写的 -
路过图床
可以上传图片,他帮我们管理,然后有markdown的连接代码 -
效果展示
-
上传镜像
docker官方要求你的镜像名字必须符合他的标准,而且经常网络不稳,导致上传失败镜像改名: docker tag apng:1 lztyyds/webs:ag01
而且原来的镜像还在,相当于做了一个软连接登录: docker login 或者: docker login -u lztyyds 这个信息保存在:cat /root/.docker/config.json 下,
- 上传 : docker push lztyyds/webs:ag01
-
登录原理
注意:私有的镜像仓库,在kubernetes中拉取需要登录信息,也就是这个文件,可以通过创建secret,让每个需要的POD去挂载,从而拉取私有仓库中的镜像
用户登录名字,密码,请求,但是这样每次都要有这个过程,异常麻烦
所以,当用户输入名字和密码时,仓库会给用户发一个token,之后在一定时间内就不用名和密码验证了,直接验证token码就行,在cat /root/.docker/config.json
私有镜像仓库Harbor
安装底层需求
-
Python应该是 应 2.7或更高版本
-
Docker引擎应为 1.10或更高版本
个人版比较粗犷,版本号是17.3,企业版比较保守。1.10也就相当于十点几,但是这也只是相对的 -
DockerCompose需要为 需 1.6.0或更高版本
docker-compose:
curl -L "https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Harbor 原理说明
1、软件资源介绍
-
Harbor是VMware公司开源的企业级 公 DockerRegistry项目,项目地址为:https://github.com/vmware/harbor。其目 。 标是帮助用户迅速搭建一个企业级的 标 Dockerregistry服务。它以 服 Docker公司开源的 公 registry为基础,提供了管理 为 UI, 基于角色的访问控制 基 (Role BasedAccess Control),AD/LDAP集成、以及审计日志 集 (Auditlogging) 等企业用户需求的功 等 能,同时还原生支持中文。 能 Harbor的每个组件都是以 的 Docker容器的形式构建的,使用 容 DockerCompose来对它进行部 来 署。用于部署 署 Harbor的DockerCompose模板位于 模 /Deployer/docker-compose.yml,由5个容器组成,这几个容器通过 个 Dockerlink的形式连接在一起,在容器之间通过容器名字互相访问。对终端用户而言,只需要暴露 的 proxy ( 即 Nginx)的服务端口 )
-
Proxy:Nginx 服务器构成的反向代理。
-
Registry: Docker官方的开源 官 registry 镜像构成的容器实例。
-
UI:即架构中的 core services, 构成此容器的代码是 构 Harbor项目的主体。
-
MySQL:由官方 MySQL 镜像构成的数据库容器。
-
Log:运行着 : rsyslogd的容器,通过log-driver的形式收集其他容器的日志的
2、Harbor特性特
- a、基于角色控制:用户和仓库都是基于项目进行组织的,而用户基于项目可以拥有不同的权限
- b、基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制
- c、支持 LDAP:Harbor的用户授权可以使用已经存在 的 LDAP用户
- d、镜像删除&垃圾回收:Image可以被删除并且回收Image占用的空间,绝大部分的用户操作 API,方便用户对系统进行扩展
- e、用户、UI:用户可以轻松的浏览、搜索镜像仓库以及对项目进行管理
- f、轻松的部署功能:Harbor提供了online、offline安装,除此之外还提供了 virtualappliance安装
- g、Harbor和 dockerregistry 关系:Harbor实质上是对dockerregistry 做了封装,扩展了自己的业务模块
Harbor的安装
1.安装docker,docker-compose,解压harbor
查看Python版本,只能函数退出
docker-compose version
docker info
确认版本
2.安装
- 修改harbor.cfg配置文件,之后install脚本会自动生成docker-compose文件完成安装
(改主机名,http——https,创建对应的ssl秘钥路径)
3.创建 https 证书以及配置相关目录权限
mkdir /data/cert
chmod -R 777 /data/cert
#生成私钥
openssl genrsa -des3 -out server.key 2048
#生成证书签名请求(CSR):
openssl req -new -key server.key -out server.csr
#有密码的话进行以下两步,复制源文件,然后去除密码
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
#生成自签名证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
- 如果发现某个服务无法访问或者启动失败的话可以执行
docker-compose -f /usr/local/harbor/docker-compose.yml start
他会自动帮你按顺序启动。而不是docker start 容器名
因为容器是有启动顺序的
访问Harbor
这时候就可以浏览器访问你的Harbor了
注意如果证书不可信的话,是不能直接访问和上传下载镜像的,所以需要在Docker的配置文件/etc/docker/daemon.json中加入
{
#你的镜像加速器地址
"registry-mirrors": ["https://bppcz7s0.mirror.aliyuncs.com"],
#受信任的的地址
"insecure-registries": ["www.zxs.com"]
}
上传镜像
先改格式,改名,在library中有推送格式
- 上传成功后所有人都能使用,退掉也能看见
字符界面的时候退出也需要加仓库名
普通用户没有办法在库里上传镜像
只能创建自己的私有库,然后上传镜像
如果两个不同的用户尝试上传相同的镜像到同一个项目,并且他们都有权限上传镜像,那么Harbor将允许这两个镜像并存。这是因为Harbor支持多租户架构,每个用户或团队可以在自己的项目中管理和维护自己的镜像集合。