docker仓库(hub、registry和harbor)

发布时间 2023-12-05 10:35:44作者: 先锋之客

1、docker仓库介绍

Docker仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。
Docker运行中使用的默认仓库是 Docker Hub 公共仓库

2、docker公有仓库和私有仓库的区别

公有仓库:Docker官方提供一个公共仓库,称为Docker Hub。任何人都可以在Docker Hub上创建帐户,并在其中存储和共享Docker镜像。
私有仓库:私有仓库是指由用户自己搭建、管理和维护的Docker仓库,可以自己选择存储位置和数据安全性,也可以和其他项目无缝集成。

3、docker hub

3.1.docker hub介绍

docker hub是docker公司维护的公共仓库,用户可以免费使用,也可以购买私有仓库。
image

3.2.docker hub公共仓库使用

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.在浏览器上查看

3.2.1.docker仓库 首先注册一个账号

image
image

3.2.2.创建一个公共仓库

image
image
image
image

4、私有仓库搭建(registry)

4.1.为什么需要搭建私有仓库

registry部署官网

  • docker hub虽然方便,但是还是有限制
    (1)需要internet连接,速度慢
    (2)所有人都可以访问
    (3)由于安全原因企业不允许将镜像放到外网
  • 好消息是docker公司已经将registry开源,我们可以快速构建企业私有仓库。

4.2.私有仓库部署

1.下载registry镜像
docker pull registry

2.运行registry容器
docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry registry

3.给镜像打标签(本地镜像在命名时需要加上仓库的ip和端口)
docker tag nginx:latest localhost:5000/nginx:latest

4.上传镜像至私有仓库
docker push localhost:5000/nginx:latest

5.测试
cd /opt/registry
ls
curl localhost:5000/v2/_catalog

5、harbor仓库

5.1.harbor仓库介绍

  • Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
  • harbor使用Docker-compose快速部署
    补充:为什么有了registry还需要harbor?
    1、提供分层传输机制,优化网络传输
    Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。
    2、提供WEB界面,优化用户体验
    只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。
    3、支持水平扩展集群
    当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。

5.2.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