使用官方的Docker Registry构建私有镜像仓库

1. 下载并运行Docker Registry

[root@docker ~]# docker run -d -p 4000:5000 -v /root/docker_host:/var/lib/registry --privileged=true registry
Unable to find image 'registry:latest' locally
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
0e405de4f567d146abb935416dc2325f8ddc0dad0c817577ed753e87255175a6
[root@docker ~]#

参数说明:

  • 默认情况镜像仓库的目录是容器内部的/var/lib/registry。用-v参数指定容器卷后,将容器的/var/lib/registry目录挂载到宿主机的/root/docker_host目录
  • -p:小写p指定了端口映射。容器内的registry服务的端口是5000,访问宿主机的4000端口,就会被映射到该容器的5000端口
  • –privileged=true:因为使用了容器卷,默认情况下容器内的root用户,相对于宿主机来说只是一个普通用户,是没有权限挂载目录的。设置为true,让容器内的root用户拥有宿主机的root用户权限

2. 查看registry服务的仓库

[root@docker ~]# curl -XGET http://192.168.23.31:4000/v2/_catalog
{"repositories":[]}
[root@docker ~]#

3. 通过打标签的方式, 将镜像修改成符合私有镜像仓库规范的tag

[root@docker ~]# docker tag centos:latest 192.168.23.31:4000/my-centos:8.8
[root@docker ~]#

4. 修改配置文件,使docker支持通过http协议推送镜像

添加insecure-registries参数,然后重启docker,然后启动registry容器

[root@docker ~]# cat /etc/docker/daemon.json 
{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
    "insecure-registries": ["192.168.23.31:4000"]
}
[root@docker ~]#
[root@docker ~]# systemctl restart docker
[root@docker ~]#

5. 推送镜像

[root@docker ~]# docker push 192.168.23.31:4000/my-centos:8.8
The push refers to repository [192.168.23.31:4000/my-centos]
74ddd0ec08fa: Pushed 
8.8: digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc size: 529
[root@docker ~]#

6. 再次查看registry服务的仓库

[root@docker ~]# curl -XGET http://192.168.23.31:4000/v2/_catalog
{"repositories":["my-centos"]}
[root@docker ~]#

7. 拉取镜像

[root@docker ~]# docker pull 192.168.23.31:4000/my-centos:8.8
8.8: Pulling from my-centos
Digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
Status: Downloaded newer image for 192.168.23.31:4000/my-centos:8.8
192.168.23.31:4000/my-centos:8.8
[root@docker ~]# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值