Docker实验(六)Docker搭建本地仓库,私有仓库(设置加密以及访问控制)

本文介绍了如何搭建Docker私有仓库,包括使用Docker Registry创建本地仓库,设置镜像命名规则,以及实现仓库的加密访问控制。详细步骤涵盖了从公共仓库的使用,到私有仓库的搭建,再到证书配置和基本身份验证的实现,确保了私有仓库的安全和高效使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.概念讲解

1.仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。 国内的公开仓库包括 Docker Pool等,可以提供大陆用户更稳定快速的访问。
2.当然,用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。
3.私有仓库的优势:
(1)有时候使用Docker Hub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,
(2)使用私有仓库可以节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可。而且提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。
(3)Docker官方提供的工具docker-registry可以用于构建私有的镜像仓库。

二.公共仓库

  • Docker仓库是用来包含镜像的位置,Dokcer提供一个注册服务器(Registry)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像

  • Docker运行中使用的默认仓库是Docker Hub公共仓库,Docker hub是docker公司维护的公共仓库,用户可以免费使用,也可以购买私有仓库
    在这里插入图片描述
    1.首先在以下网址中注册一个帐号(注意:帐号名不要写成电话号码,这里鄙人就犯错了,所以以下所有看不清的皆为鄙人的电话号码)

    https://cloud.docker.com/

在这里插入图片描述
2.在docker主机中登录帐号(此处需要联网,因为此处相当于登陆网页中的docker)

[root@server1 ~]# docker login

在这里插入图片描述
3.给nginx:latest添加标签并查看

[root@server1 ~]# docker tag nginx:latest 1***5/nginx:vv1
[root@server1 ~]# docker images 1***5/nginx:vv1 

在这里插入图片描述
注意:
docker hub为了区分不同用户的同名镜像,要求镜像的格式是:[username]/xxx.tag

4.在docker hub(网页中)新建一个公共仓库

  • 点击Create Repository
    在这里插入图片描述

  • 输入创建的Repository名称
    在这里插入图片描述

  • 查看Repository,会发现此时Tags没有内容
    在这里插入图片描述
    5.将镜像上传到docker hub中

    [root@server1 ~]# docker push 1***5/nginx:vv1

在这里插入图片描述
6.在docker hub中查看,发现此时的tag中有刚上传的标签为vv1的镜像
在这里插入图片描述
7.从docker hub拉取镜像,会发现如果docker主机中有要拉取的镜像,那么会更新,如果没有,那么会拉取

[root@server1 ~]# docker pull 18909238335/nginx:vv1 

docker主机中有镜像:
在这里插入图片描述
docker主机中没有镜像:
在这里插入图片描述
8.删除镜像(避免影响之后的实验)

[root@server1 ~]# docker rmi 18909238335/nginx:vv1 

在这里插入图片描述

三.私有仓库的搭建及镜像的下载

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

2.Registry工作原理
一次docker pull/push背后发生的事情
在这里插入图片描述
(1)index服务只要提供镜像索引以及用户认证的功能。当下载一个镜像的时候,首先会去index服务上做认证,然后查找镜像所在的registry的地址并放回给docker客户端,docker客户端再从registry下载镜像,在下载过程中 registry会去index校验客户端token的合法性,不同镜像可以保存在不同的registry服务上,其索引信息都放在index服务上。
(2)Docker Registry有三个角色,分别是index、registry和registry client。
(3)index负责并维护有关用户帐户、镜像的校验以及公共命名空间的信息。
(4)registr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值