Docker 私有镜像仓库 Registry 搭建指南

一、概述

Docker 不仅提供了中央仓库(Docker Hub),还允许用户搭建本地私有仓库来更好地管理企业项目镜像。Docker 官方提供了 registry 镜像来简化私有仓库的搭建过程。

二、部署操作实例

2.1 拉取 Registry 镜像

[root@hrz3 ~]# docker pull registry:2
2: Pulling from library/registry
44cf07d57ee4: Pull complete 
bbbdd6c6894b: Pull complete 
8e82f80af0de: Pull complete 
3493bf46cdec: Pull complete 
6d464ea18732: Pull complete 
Digest: sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373
Status: Downloaded newer image for registry:2
docker.io/library/registry:2

2.2 启动 Registry 容器

[root@hrz3 ~]# docker run -itd -p 5000:5000 --restart always --name myregistry registry:2 
928accbaff9e1446c81e081f11c353d678e246a19c87d42c12bb03959b6a2416
  • 参数说明:
    • -p 5000:5000:端口映射
    • --restart always:确保容器自动重启,服务高可用
    • --name myregistry:容器名称

2.3 验证服务状态

[root@hrz3 ~]# docker ps
CONTAINER ID   IMAGE        COMMAND                   CREATED         STATUS         PORTS                                         NAMES
928accbaff9e   registry:2   "/entrypoint.sh /etc…"   7 seconds ago   Up 5 seconds   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp     myregistry

三、配置与使用

3.1 准备镜像并打标签

registry默认是不需要身份验证就能直接上传镜像,但是需要修改镜像名来指定仓库地址。

镜像命名格式: IP:端口/镜像名:标签

[root@hrz3 ~]# docker tag nginx:v2  192.168.100.30:5000/nginx:v2
[root@hrz3 ~]# docker images
REPOSITORY                  TAG       IMAGE ID       CREATED        SIZE
kod                         v1        2c901cc19f0b   21 hours ago   676MB
saolei                      v1        3a4bc4a8f28b   24 hours ago   716MB
192.168.100.30:5000/nginx   v2        69dcbe3cb46e   25 hours ago   536MB

3.2 配置 Docker 信任私有仓库

编辑 Docker 配置文件:

在加速器配置后面加上

“insecure-registries”: [“192.168.100.30:5000”]

[root@hrz3 ~]# vim /etc/docker/daemon.json 
{
 "registry-mirrors": [
 "https://docker.m.daocloud.io",
 "https://dockerproxy.com",
 "https://docker.mirrors.ustc.edu.cn",
 "https://docker.nju.edu.cn"
  ] ,"insecure-registries": ["192.168.100.30:5000"]
}

重启 Docker 服务使配置生效:

[root@hrz3 ~]# systemctl daemon-reload
[root@hrz3 ~]# systemctl restart docker

3.3 推送镜像到私有仓库

[root@hrz3 ~]# docker push 192.168.100.30:5000/nginx:v2

3.4 验证仓库内容

[root@hrz3 ~]# curl http://192.168.100.30:5000/v2/_catalog
{"repositories":["nginx"]}

总结

1、Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库,Docker官方提供了一个搭建私有仓库的镜像 registry。
2、添加–restart always参数,可是使容器随着Docker host的启动而启动。
3、registry默认是不需要身份验证就能直接上传镜像,但是需要修改镜像名来指定仓库地址。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐