docker仓库
一、docker仓库
1.docker仓库简介
Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。
Docker运行中使用的默认仓库是 Docker Hub 公共仓库。
2.docker hub
docker search 应用,可以看到该应用的官方仓库在哪里:
比如:docker info
3.在官方注册账号并建立docker仓库
首先在https://hub.docker.com/网站注册一个账号
在docker hub上新建一个公共仓库
注意:此处由于我们是在官方新建了仓库,所以我们下面的docker login 也是直接登陆到官方,(可以使用docker info 查看仓库地址)
下图展示了 该用户的官方认证信息保存在.docker目录中,这样就保证了后续的操作就不需要频繁的login,只需要login一次就可以了。
做完上述操作,刷新一下该页面,就能得到如下界面。
并且在客户端也能搜得到:
4.docker hub帐号的注销
docker logout #注销帐号
注意:login一次就好,上传的时候也只需要在login时认证一次,注销后需要重新认证。
5.docker hub镜像的删除
二、Registry 工作原理
一次docker pull 或 push背后发生的事情:
Docker Registry有三个角色,分别是index、registry和registry client。
(1)index
负责并维护有关用户帐户、镜像的校验以及公共命名空间的信息。
Web UI
元数据存储
认证服务
符号化
(2)registry
是镜像和图表的仓库,它不具有本地数据库以及不提供用户认证,通过Index Auth service的Token的方式进行认证。
(3)Registry Client
Docker充当registry客户端来维护推送和拉取,以及客户端的授权。
以下 是几种访问情形。
docker用户端向index端提出访问申请,然后,index端将镜像地址以及token返回给客户端,客户端知道了镜像地址以后拿着token去取镜像,registry端此时会和index端做一次token校验,确认token的真实性,确认无误后,会允许客户端下载镜像。
三、镜像加速器
从docker hub上下载镜像的速度太慢,需要配置镜像加速器,这里以阿里云为例:(需要提前注册阿里云帐号)
整体操作思路如下:
配置docker daemon文件:
vim /etc/docker/daemon.json
{
“registry-mirrors”: [“阿里云加速器地址”]
}
重载docker服务:
systemctl daemon-reload
systemctl restart docker
(1)获取阿里云加速器地址
这里获得了阿里云的镜像加速器地址。
(2)修改daemon配置文件</etc/docker/daemon.json>来使用加速器
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://t5ajcuue.mirror.aliyuncs.com"]
}
(3)导入配置并重启服务
systemctl daemon-reload #重新导入daemon配置
systemctl restart docker #重启docker
docker info