08 docker Registry搭建docker私仓

目录

@ 本地镜像发布流程

1. docker pull registry 下载镜像

2. docker run 运行私有库registry

3. docker commit 构建镜像

4. docker tag 修改新镜像,使之符合私服规范tag

5. 修改配置文件使之支持http

6. curl验证私服库上有什么镜像

7. push推送 pull拉取 run验证


@ 本地镜像发布流程

1. docker pull registry 下载镜像

Docker Registry是官方提供的工具,可以用于构建私有镜像仓库

2. docker run 运行私有库registry

[root@rockylinux docker_registry]# pwd
/root/docker_registry
[root@rockylinux docker_registry]# docker run -d -p 5000:5000 -v /root/docker_registry/:/tmp/registry --privileged=true registry

默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便于宿主机联调(调试和开发)

3. docker commit 构建镜像

[root@rockylinux ~]# docker run -it --name ifconfigubuntu ubuntu /bin/bash
root@6d6fe54d8a52:/# ifconfig
bash: ifconfig: command not found
root@6d6fe54d8a52:/# apt-get update
root@6d6fe54d8a52:/# apt-get install -y net-tools
root@6d6fe54d8a52:/# which ifconfig
/usr/sbin/ifconfig
----------------------------------------------------------------------------------------
[root@rockylinux ~]# docker commit -m="this add ifconfig" -a="fujiang" 6d6fe54d8a52 ifconfigubuntu:1.2
sha256:c14a3d7cdae651f3dbcd580c155ec08e87a3a062e677ebd10b51772377074eb5
[root@rockylinux ~]# docker images
REPOSITORY                        TAG       IMAGE ID       CREATED          SIZE
ifconfigubuntu                    1.2       c14a3d7cdae6   10 seconds ago   126MB
registry                          latest    b8604a3fe854   2 years ago      26.2MB
ubuntu                            latest    ba6acccedd29   2 years ago      72.8MB
[root@rockylinux ~]# docker run -it ifconfigubuntu:1.2
root@dd818118ec9c:/# which ifconfig
/usr/sbin/ifconfig

4. docker tag 修改新镜像,使之符合私服规范tag

公式:docker tag 镜像:Tag Host:Port/Repository:Tag

[root@rockylinux ~]# docker tag ifconfigubuntu:1.2 172.16.12.51:5000/ifconfigubuntu:1.2

[root@rockylinux ~]# docker images
REPOSITORY                                                         TAG       IMAGE ID       CREATED          SIZE
ifconfigubuntu                                                     1.2       c14a3d7cdae6   36 minutes ago   126MB
172.16.12.51:5000/ifconfigubuntu                                   1.2       c14a3d7cdae6   36 minutes ago   126MB

5. 修改配置文件使之支持http

[root@rockylinux ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://3ozi8ijo.mirror.aliyuncs.com"],
  "insecure-registries": ["172.16.12.51:5000"]
}
systemctl daemon-reload
systemctl restart docker

注意:为json格式 , 不要遗漏

6. curl验证私服库上有什么镜像

[root@rockylinux ~]#  curl -X GET http://172.16.12.51:5000/v2/_catalog
{"repositories":[]} 
#初始为空

HTTP API V2 :HTTP API V2 | Docker Documentation
这个命令用于通过 curl 工具向 Docker Registry 发送一个 HTTP GET 请求,以获取镜像仓库(repository)列表。具体来说,它访问的是 Docker Registry API 的 _catalog 端点,该端点会返回一个 JSON 对象,列出所有在该 Registry 中存在的镜像仓库。
curl -XGET http://192.168.111.162:5000/v2/_catalog

  • -X参数用于指定 HTTP 请求方法,这里是GET方法。实际上,对于GET请求来说,-XGET可以省略,因为GETcurl的默认方法。
  • 例如,curl http://192.168.111.162:5000/v2/_catalogcurl -XGET http://192.168.111.162:5000/v2/_catalog效果是相同的。
    • http:使用 HTTP 协议。
    • 192.168.111.162:目标服务器的 IP 地址。
    • 5000:目标服务器上运行 Docker Registry 服务的端口。
    • /v2/_catalog:Docker Registry API 的_catalog端点,用于获取镜像仓库的列表。 返回示例, 假设您在本地 Registry 中有两个镜像仓库ubuntunginx,响应可能会是这样的:

7. push推送 pull拉取 run验证

[root@rockylinux ~]# docker push 172.16.12.51:5000/ifconfigubuntu:1.2

[root@rockylinux ~]#  curl -XGET http://172.16.12.51:5000/v2/_catalog
{"repositories":["ifconfigubuntu"]}

[root@rockylinux ~]# docker pull 172.16.12.51:5000/ifconfigubuntu:1.2

docker run 验证
  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值