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

网友投稿 258 2022-08-23

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

前言

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

如图中所显示的,Registry: 这个实际上对应的就是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. 安装~]# yum install -y ~]# 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.  通过浏览器验证

访问刚才的htpasswd文件就是记录的这个用户和密码

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

备注: 特别注意:由于咱们现在启动的registry是不支持我们可以设置docker的daemon设置,让其也可以通过加入以下内容

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

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

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

在交互环境里,输入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

再次访问进行验证

新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/registryUsing default tag: latestlatest: Pulling from registryDigest: sha256:6f86956ed3802764cf98f5f20ed549a649ffd1f24fb273aef48748da5531b576Status: Downloaded newer image for 192

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:动刀营销,江小白求变!
下一篇:爱上开源之golang入门至实战第四章-映射(Map)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~