Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器 (Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag 的镜像。
Docker运行中使用的默认仓库是 Docker Hub 公共仓库。docker hub是docker公司维护的公共仓库,用户可以免费使用,也可以购 买私有仓库
可以浏览器hub.docker.com图形化查看,也可命令行docker search nginx查看
从docker主机往docker hub上传就镜像需要docker login输入用户名密码登录, docker hub为了区分不同用户的同名镜像,要求镜像的格式是: [username]/xxx.tag ,如 docker tag nginx:v3 yakexi007/webserver:latest,然后上传docker push yakexi007/webserver:latest。从docker hub拉取镜像 # docker pull yakexi007/webserver:latest,删除本地镜像 docker rmi yakexi007/webserver:latest
Registry工作原理
Docker Registry有三个角色,分别是index、registry和registry client。
• index
负责并维护有关用户帐户、镜像的校验以及公共命名空间的信息。 Web UI , 元数据存储认证服务 ,符号化。
registry
是镜像和图表的仓库,它不具有本地数据库以及不提供用户认证,通过 Index Auth service的Token的方式进行认证。
• Registry Client
Docker充当registry客户端来维护推送和拉取,以及客户端的授权。
配置镜像加速器
从docker hub上下载镜像的速度太慢,需要配置镜像加速器,这里以 阿里云为例:(需要提前注册阿里云帐号)
vim /etc/docker/daemon.json
搭建私有仓库
删除本地nginx镜像
仓库优化:
添加本地解析
vim /etc/docker/daemon.json
systemctl restart docker重启
在内网的其他主机也可远程拉取,只需复制.json文件,重启docker,即可拉取
使用加密方式
mkdir -p certs 创建证书主目录
企业七需要升级openssl
之前的不走加密可以删掉了,只保留加速,且删掉逗号
此时在远程拉取镜像时需要证书,scp -r cert.d/ server6:/etc/docker/
使用认证
添加证书后需要认证方可上传下载
认证后可以push上传或pull拉取
企业级镜像仓库harbor
软件下载:https://github.com/goharbor/harbor/releases
docker-compose命令要与yml在同一级目录,状态若不全为running则可以docker-compose start
此时可以在浏览器访问本地ip访问harbor仓库