爱上开源之DockerUI-自建Docker镜像仓库实战

58 篇文章 5 订阅
21 篇文章 1 订阅

前言

Docker镜像仓库(Repository)负责镜像文件的存储和分发的工作,也被称为registry;是Docker客户端执行pull和push操作时,都是和Docker进行仓库进行交互,而实现从仓库获取和保持镜像的交互过程。Docker的官方镜像仓库就是我们经常提到的Docker的Hub官网。 在Docker客户端,执行docker info命令,就可以查询到我们的docker客户端里配置的镜像仓库的地址;

 

如图中所显示的,Registry: https://index.docker.io/v1/ 这个实际上对应的就是Docker的官方仓库;在我们的实际使用docker的过程中,只是从官方的docker仓库里获取或者保存镜像文件可能不能满足我们的需求;或者是本身我们的镜像只是私有使用的;在这样的场景里,我们就需要建立自己的私有仓库。

今天的这个文章,咱们要讲的就是部署私有镜像仓库的实战过程;

在目前的docker镜像仓库的产品里,有几个主流产品,包括Docker registry(Distribution), Harbor和Nexus。  今天我们这里主要介绍其中的Docker Registry和Nexus这两个产品。

Docker registry

Docker registry(Distribution)是Docker公司自带的产品,完全支持Registry的API;最初版本的registry由python实现,该版本在0.9之后停止了开发, 由新的项目distribution(新docker register(也被称为Distribution,在Docker的开源项目组里可以找到该项目);Distribution项目由Golang实现。

可以通过docker registry的镜像文件,来部署Docker registry作为我们的私有仓库;

1. 下载docker registry的镜像文件

[root@XNode01 ~]# docker pull registry

 2. 准备权限配置文件

[root@XNode01 ~]# mkdir -p /data/registry/auth

 3. 安装httpd-tools并产生密码文件

[root@XNode01 ~]# yum install -y httpd-tools
[root@XNode01 ~]# htpasswd -Bbn admin 123456 > /data/registry/auth/htpasswd

4. 启动registry

[root@XNode01 ~]# docker container run -p 5000:5000 --restart=always \ 
--name registry \
-v /data/registry/auth/:/auth \
-e "REGISTRY_AUTH=htpasswd" \ 
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry

 

5.  通过浏览器验证 

访问http://ip:5000/v2/_catalog地址

输入admin和123456; 刚才的htpasswd文件就是记录的这个用户和密码

目前没有镜像文件,返回的是空的内容

备注: 特别注意:由于咱们现在启动的registry是不支持https访问的,默认情况下。docker客户端在和镜像仓库进行交互是使用https协议的。 我们可以设置docker的daemon设置,让其也可以通过http和镜像仓库进行访问。

修改/etc/docker/daemon.json文件,如果没有此文件,可以创建; 加入以下内容

"insecure-registries": ["192.168.56.102:5000"]

 

 6 通过Docker客户Push命令进行验证

[root@XNode01 ~]# docker login 192.168.56.102:5000
Username: admin
Password: 

在交互环境里,输入admin和123456; 登录成功

 用registry这个镜像来做push的测试; 先要修改tag

[root@XNode01 ~]# docker image tag registry 192.168.56.102:5000/registry
[root@XNode01 ~]# docker image ls

推送修改后的tag

[root@XNode01 ~]# docker image push 192.168.56.102:5000/registry 

 再次访问http://ip:5000/v2/_catalog地址; 进行验证

新push上去的镜像已经展示到这个地方了。 

7. 测试pull功能,从私有仓库192.168.56.102:5000里下载镜像

先删除掉docker机器上已经有的原镜像

[root@XNode01 ~]# docker image rm 192.168.56.102:5000/registry

测试下载命令

[root@XNode01 ~]# docker image pull 192.168.56.102:5000/registry
Using default tag: latest
latest: Pulling from registry
Digest: sha256:6f86956ed3802764cf98f5f20ed549a649ffd1f24fb273aef48748da5531b576
Status: Downloaded newer image for 192

 

至此,使用Docker registry部署私有的镜像仓库成功完成。

这篇文章,记录了有关使用Docker Registry进行私有Docker仓库的安装实战过程; 并进行了Pull和push的测试。 在下一个文章里,我们会介绍另一个使用非常广泛的另一个Registry产品Nexus, Nexus不仅支持全面的Docker Registry V1.0和V2.0接口标准;还拥有简单而方便的操作界面,和更强大的管理支持。 敬请各位朋友下一期关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inthirties

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值