Docker仓库的搭建一Registry仓库

前言

        Docker仓库分为公共仓库和私有仓库,下文将搭建Registry仓库,并实现镜像的上传和下载。

目录

前言

1.搭建私有仓库的优点

2.registry仓库的构建

2.1 下载Docker registry镜像

2.2 启动私有仓库容器,启动命令如下

2.3 上传镜像至本地私有仓库

2.4 修改tag号

2.5 重新上传

 2.6 镜像检查

3.在镜像仓库下载镜像

4.查询仓库镜像

1.搭建私有仓库的优点

  1. 节省网络带宽,针对于每个镜像不用去Docker官网仓库下载;
  2. 下载Docker镜像从本地私有仓库中下载;
  3. 组件公司内部私有仓库,方便各部门使用,服务器管理更加统一;
  4. 可以基于GIT或者SVN、Jenkins更新本地Docker私有仓库镜像版本。

2.registry仓库的构建

2.1 下载Docker registry镜像

[root@zfl ~]# docker pull docker.io/registry
Using default tag: latest
latest: Pulling from library/registry
79e9f2f55bf5: Pull complete 
0d96da54f60b: Pull complete 
5b27040df4a2: Pull complete 
e2ead8259a04: Pull complete 
3790aef225b9: Pull complete 
Digest: sha256:169211e20e2f2d5d115674681eb79d21a217b296b43374b8e39f97fcf866b375
Status: Downloaded newer image for registry:latest

2.2 启动私有仓库容器,启动命令如下

[root@zfl ~]# mkdir -p  /data/registry/  
[root@zfl ~]# docker run -itd -p 5000:5000 -v /data/registry:/var/lib/registry  registry:latest
4ef0d3fac6606b7e2d044c759a780d2acf585fc1eb53d364fed825b7a527bfe6
[root@zfl ~]# 

/data/registry/  创建一个镜像仓库的存放位置

/data/registry:/var/lib/registry 通过目录共享,来实现将仓库的文件同步到本地

2.3 上传镜像至本地私有仓库

2b4c0cb5c6cd415d91e996389cdb9990.png

 出现错误,因为上传的位置是官方的仓库 docker.io/library/nginx

所以我们需要上传的是内网服务器上

791d24b416d44adeb0cde2cb90536ddb.png

 仍然报错  本地没有叫做172.24.35.161:5000/nginx的这个镜像名称

因此我们需要把上传的镜像名改成172.24.35.161:5000/nginx  ip+nginx

2.4 修改tag号

[root@zfl ~]# docker tag  605c77e624dd 172.24.35.161:5000/nginx:latest
[root@zfl ~]# docker images 
172.24.35.161:5000/nginx                         latest         605c77e624dd   15 months ago   141MB
[root@zfl ~]# 

2.5 重新上传

9d398000f8a44cea88e02538dfbdfc83.png

 出现报错 告诉我们需要认证https 我们要修改非https的形式


cat /etc/docker/daemon.json
{
	"insecure-registries":["172.24.35.161:5000"]
}
[root@itzfl ~]# 

重启docker,再次上传

ad27b0c6a2bf41d388666a76d10a1147.png

刚刚重启  因为registry这个容器已经关机 需要重新开机

[root@zfl ~]# docker ps -a |grep re
4ef0d3fac660   registry:latest   "/entrypoint.sh /etc…"   19 minutes ago   Exited (2) About a minute ago               flamboyant_hofstadter
[root@zfl ~]# docker start 4ef0d3fac660
4ef0d3fac660
[root@zfl ~]# 

 在次上传e399a1a745e2409e9d77f786c21bf5cd.png

 2.6 镜像检查

[root@zfl ~]# cd /data/registry/
[root@zfl registry]# ls
docker
[root@zfl registry]# 

 

重点:172.24.35.161:5000/nginx:latest 这个ip两次意思 一层是名称 一层是ip url

 

3.在镜像仓库下载镜像

390f727c4e494fac9ef8d236022f4cbb.png

 我们发现下载走的是私有仓库  若不指定url  则会从官方仓库下

在另外一台机器下载本地仓库的镜像

我的仓库配置在阿里云的云服务器上面 第二台机器为虚拟机

[root@itzfl ~]# more /etc/docker/daemon.json 
{
	"insecure-registries":["101.132.242.188:5000"]
}
[root@itzfl ~]# 

因此需要写公网的ip地址

在下载镜像的时候需要pull的是公网的ip  外网ip:5000/nginx

[root@itzfl ~]# docker pull 101.132.242.188:5000/nginx:latest
latest: Pulling from nginx
a2abf6c4d29d: Pull complete 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest: sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3
Status: Downloaded newer image for 101.132.242.102:5000/nginx:latest
101.132.242.188:5000/nginx:latest

我们也可以看到是从指定的仓库下载的

77df5cdfa15949fc8a6cbe245a7ca94a.png

4.查询仓库镜像

[root@zfl ~]# curl -XGET http://172.24.35.161:5000/v2/_catalog
{"repositories":["nginx"]}
[root@zfl ~]# curl -XGET http://172.24.35.161:5000/v2/nginx/tags/list
{"name":"nginx","tags":["latest"]}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值