51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

自建 Docker 镜像存储库解决拉取问题

Distribution Registry 是一个开源镜像仓库,用于存储和管理 Docker 镜像。它允许您在 Linux 服务器上创建私有的 Docker 镜像仓库,以便团队成员共享、访问镜像,也可用于加速拉取「解决境内拉取问题」

主要功能 {#主要功能}

镜像存储、管理。Distribution Registry 提供功能强大的仓库系统,用于存储和管理 Docker 镜像,方便团队成员之间的共享和访问。

可私有化部署。您可以在自己的 Linux 服务器上搭建私有的 Distribution Registry,以满足安全和隐私要求。

访问控制。支持设置访问权限,可以控制谁可以拉取和推送镜像,以保护您的镜像和数据的安全性。

标签、版本管理。可以为镜像设置标签和版本,方便对镜像进行分类和管理。

兼容性好。Distribution Registry 兼容 Docker 镜像仓库的标准 API,可以使用 Docker CLI 或其它 Docker 客户端工具与之交互。

支持指定上游源 URL。可通过指定上游源 URL 以加速镜像拉取,解决境内拉取问题。

安装配置 {#安装配置}

这里推荐使用 Docker 来部署,将下面的内容保存到 docker-compose.yml

|-------------------------|---------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 | services: docker-registry: image: registry:2.8.3 restart: always ports: - 5000:5000 volumes: - ./data:/var/lib/registry |

然后使用下面命令启动即可:

|-----------|------------------------------| | 1 | docker-compose up -d |

当出现上游源 URL 无法使用时,可以通过添加下面参数来指定上游源地址:

|-------------------|------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 | proxy: remoteurl: https://registry-1.docker.io username: [username] password: [password] ttl: 168h |

可以通过参数来指定缓存的方式「注意两个 cache 选其一,互相冲突」

|---------------------|--------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 | cache: blobdescriptor: redis blobdescriptorsize: 10000 cache: blobdescriptor: inmemory blobdescriptorsize: 10000 |

参数说明 {#参数说明}

上文中出现的参数说明如下:

| 参数 | 必填 | 描述 | |--------------------|----|------------------------------------------------| | remoteurl | Y | Docker Hub 上存储库 URL。 | | username | N | 私有存储库中注册的用户名。 | | password | N | 私有存储库中注册密码。 | | ttl | N | 代理缓存过期时间,0 为禁止缓存过期。 | | blobdescriptor | Y | 指定缓存方式,inmemory 为内存缓存,redis 则为 Redis 缓存。 | | blobdescriptorsize | N | 要存储在缓存中的描述符数限制。如果参数设置为 0,则允许缓存在没有大小限制的情况下增长。 |

注意事项 {#注意事项}

修改客户端的配置文件,默认路径为/etc/docker/daemon.json,添加如下内容:

|-------------------|------------------------------------------------------| | 1 2 3 4 5 | { "registry-mirrors": [ "http://IP:5000" ] } |

因为默认不支持 HTTPS,需使用 Nginx 配置反向代理。运行下面的命令重启 Docker 服务:

|-----------|----------------------------------| | 1 | systemctl restart docker |

赞(2)
未经允许不得转载:工具盒子 » 自建 Docker 镜像存储库解决拉取问题