08 docker Registry搭建docker私仓

目录

[@ 本地镜像发布流程](#@ 本地镜像发布流程)

[1. docker pull registry 下载镜像](#1. docker pull registry 下载镜像)

[2. docker run 运行私有库registry](#2. docker run 运行私有库registry)

[3. docker commit 构建镜像](#3. docker commit 构建镜像)

[4. docker tag 修改新镜像,使之符合私服规范tag](#4. docker tag 修改新镜像,使之符合私服规范tag)

[5. 修改配置文件使之支持http](#5. 修改配置文件使之支持http)

[6. curl验证私服库上有什么镜像](#6. curl验证私服库上有什么镜像)

[7. push推送 pull拉取 run验证](#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 验证
相关推荐
Karoku0661 小时前
【CI/CD】CI/CD环境搭建流程和持续集成环境配置
运维·ci/cd·docker·容器·kubernetes·prometheus
勤奋的凯尔森同学4 小时前
webmin配置终端显示样式,模仿UbuntuDesktop终端
linux·运维·服务器·ubuntu·webmin
Bright16687 小时前
centos9安装k8s集群
云原生·容器·kubernetes
!!!5258 小时前
华为云镜像加速器
docker·容器·华为云
技术小齐9 小时前
网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)
运维·网络·学习
ITPUB-微风9 小时前
Service Mesh在爱奇艺的落地实践:架构、运维与扩展
运维·架构·service_mesh
落幕9 小时前
C语言-进程
linux·运维·服务器
chenbin5209 小时前
Jenkins 自动构建Job
运维·jenkins
java 凯10 小时前
Jenkins插件管理切换国内源地址
运维·jenkins
xidianjiapei00110 小时前
Kubernetes的Ingress 资源是什么?
云原生·容器·kubernetes