docker容器三之docker仓库(hub、registry和harbor) | 您所在的位置:网站首页 › docker中仓库分为哪几种 › docker容器三之docker仓库(hub、registry和harbor) |
文章目录
docker仓库介绍docker公有仓库和私有仓库的区别docker hubdocker hub介绍docker hub公共仓库使用
私有仓库搭建(registry)为什么需要搭建私有仓库registry工作原理私有仓库部署私有仓库部署(添加证书加密功能)私有仓库部署(添加用户认证功能)
harbor仓库harbor仓库介绍harbor仓库部署(基础)harbor仓库部署(添加用户及项目)harbor仓库部署(添加功能)
docker仓库介绍
Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。Docker运行中使用的默认仓库是 Docker Hub 公共仓库
docker公有仓库和私有仓库的区别
公有仓库:Docker官方提供一个公共仓库,称为Docker Hub。任何人都可以在Docker Hub上创建帐户,并在其中存储和共享Docker镜像。私有仓库:私有仓库是指由用户自己搭建、管理和维护的Docker仓库,可以自己选择存储位置和数据安全性,也可以和其他项目无缝集成。
docker hub
docker hub介绍
docker hub是docker公司维护的公共仓库,用户可以免费使用,也可以购买私有仓库。 docker hub官网 1.首先在https://cloud.docker.com/网站注册一个账号 2.在docker hub上新建一个公共仓库 3.登录docker hub docker login 4.上传镜像 docker images docker tag kaminskypavel/mario:latest lyueyue/mario:latest docker push lyueyue/mario:latest 5.在浏览器上查看docker仓库 首先注册一个账号 registry部署官网 docker hub虽然方便,但是还是有限制 (1)需要internet连接,速度慢 (2)所有人都可以访问 (3)由于安全原因企业不允许将镜像放到外网好消息是docker公司已经将registry开源,我们可以快速构建企业私有仓库。 registry工作原理 一次docker pull 或 push背后发生的事情 index服务主要提供镜像索引以及用户认证的功能。当下载一个镜像的时候,首先会去index服务上做认证,然后查找镜像所在的registry的地址并放回给docker客户端,docker客户端再从registry下载镜像,在下载过程中 registry会去index校验客户端token的合法性,不同镜像可以保存在不同的registry服务上,其索引信息都放在index服务上。![]() ![]() ![]() ![]() 现在搭建私有仓库 搭建私有仓库的步骤: (1)在hosts文件里设置域名解析
补充:为什么有了registry还需要harbor? 1、提供分层传输机制,优化网络传输 Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。 2、提供WEB界面,优化用户体验 只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。 3、支持水平扩展集群 当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。 harbor仓库部署(基础)habor下载地址 首先清理环境 docker rm -f registry cd .docker/ rm -fr config.json 1.解压harbor包 tar zxf harbor-offline-installer-v1.10.1.tgz 2.修改habor配置文件 cd harbor vim harbor.yml 3.安装docker-compose curl -L "https://github.com/docker/compose/releases/download/1.27.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose 4.安装habor ./install.sh --help ./install.sh --with-notary #签名模块 --with-clair #扫描模块 --with-chartmuseum #K8S中用于软件包管理 ./install.sh --with-clair --with-notary --with-chartmuseum 4.查看安装情况 docker-compose ps 5.本地登录 docker login www.lyueyue.org 6.在本机测试 docker images docker tag nginx:latest www.lyueyue.org/library/nginx:latest docker push www.lyueyue.org/library/nginx:latest 7.配置别的虚拟机,并测试 scp /root/certs/www.lyueyue.org.crt server2:/etc/docker/certs.d/www.lyueyue.org/ca.crt scp /root/certs/www.lyueyue.org.crt server3:/etc/docker/certs.d/www.lyueyue.org/ca.crt ssh server2 systemctl restart docker ssh server3 systemctl restart docker
先来介绍一下怎么添加用户 官方参考文档 1.添加扫描功能(平时建议关闭,每扫描一次就会增加虚拟机大小) 2.测试(做完实验将其关闭) 3.添加签名功能 部署根证书 cp /root/certs/www.lyueyue.org.crt /etc/docker/certs.d/www.lyueyue.org/ca.crt mkdir /root/.docker/tls/www.lyueyue.org:4443/ -p cd /etc/docker/certs.d/www.lyueyue.org/ cp ca.crt /root/.docker/tls/www.lyueyue.org\:4443/ 启用docker内容信任 export DOCKER_CONTENT_TRUST=1 export DOCKER_CONTENT_TRUST_SERVER=https://www.lyueyue.org:4443 4.测试:上传镜像 docker images docker push www.lyueyue.org/library/busybox:latest 5.设置内容信任 6.在server2上测试 docker pull www.lyueyue.org/library/nginx:latest docker pull www.lyueyue.org/library/busybox:latest 7.取消签名机制,保留其不占用空间,为之后学习K8S作准备。 export DOCKER_CONTENT_TRUST=0 docker-compose down ./prepare ./install.sh --with-chartmuseum开启上传时的自动扫描 |
CopyRight 2018-2019 实验室设备网 版权所有 |