news 2026/4/28 1:51:30

docker镜像仓库-registry

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
docker镜像仓库-registry

本文将详细且全面的说明如何搭建和使用docker的轻量级自建私有镜像仓库-registry(含web管理页面、用户验证)
以ubuntu/debian系统为例

docker-compose

services:registry:image:registry:latestcontainer_name:registryrestart:unless-stoppedvolumes:# 同步宿主机时间-/etc/timezone:/etc/timezone:ro-/etc/localtime:/etc/localtime:ro# 仓库数据-./_data_:/var/lib/registryenvironment:# 启用htpasswd身份验证-REGISTRY_AUTH=htpasswd# 认证文件路径-REGISTRY_AUTH_HTPASSWD_PATH=/var/lib/registry/pwd# 开启认证,这一项必填-REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm"ports:-"5210:5000"# 网页registry-web:image:klausmeyer/docker-registry-browser:1.8.5container_name:registry-webenvironment:-DOCKER_REGISTRY_URL=http://registry:5000/v2# 秘钥,自行修改-SECRET_KEY_BASE=3qSG8b10fuL0# 按空间名折叠-ENABLE_COLLAPSE_NAMESPACES=true# 启用删除镜像-ENABLE_DELETE_IMAGES=truerestart:unless-stoppedports:-"5211:8080"networks:registry_net:

用户账号密码

通过htpasswd来设置registry的访问账号

# 安装工具包aptinstallapache2-utils# 包含htpasswd工具# 第一次创建# pwd ,是存储账号密码的文件sudohtpasswd -c ./pwd 用户名#输入后,会提示输入密码# 新增用户或修改密码sudohtpasswd ./pwd 用户名#输入后,会提示输入密码# 删除用户sudohtpasswd -D ./pwd 用户名# 验证密码sudohtpasswd -vpwd用户名

注意(register中必须使用-B进行强加密)

# 使用-B进行加密,registy必须用这个htpasswd -Bcpwdadmin

登录&退出登录

  • 登录示例
    docker login 127.0.0.1:3000,然后输入账号密码(无验证可不输入)
    登录验证信息,存储在:用户/.docker/config.json,在文件可以查看有哪些登录了的账号
  • 登出示例
    docker logout 127.0.0.1:3000

推送&拉取

  • 推送示例
    推送的第一步是给镜像添加标签
    docker tag hello-world:latest(或者镜像id) 127.0.0.1:3000/hello-world:v1.0
    将镜像标签打包为对应的域时,就可以开始推送了
    docker push 127.0.0.1:3000/hello-world:v1.0

  • 拉取示例
    docker pull 127.0.0.1:3000/hello-world:v1.0

有关https的问题

一般来说是不推荐使用http协议来传输的,建议通过nginx代理成https服务,这很容易实现。如果遇到域名未备案无法用域名访问,而ip又没有https证书的话,推荐使用自签证书。这样就能无需在docker中作修改直接使用了。

若仍想要使用http,需做以下修改,允许访问http网站:
http镜像源,需要在docker中进行配置:/etc/docker/daemon.json
配置完成后,需重启docker服务。systemctrl restart docker

{"insecure-registries":["127.0.0.1:3000"]}

方案2(直接打包镜像)

对于需经常性变更的镜像,或多人频繁使用的话,搭建registry镜像还是比较推荐的。较大团队或者追求更丰富功能的话更推荐使用harbor
但如果只是个人偶尔使用,或许直接打包成镜像会来的更加方便。
镜像打包:docker save -o xx.tar 镜像
加载镜像:docker load -i xx.tar

这里写了一个python的镜像批量打包脚本,可自行参考,默认使用7z进行打包(在网盘文件中,文章使用的镜像文件也在里面)

其它(镜像源推荐)

渡渡鸟:https://docker.aityp.com/,速度很快的镜像源,但需注意镜像的版本,往往不是最新的,需要自己甄别
轩辕镜像:https://docker.xuanyuan.me/,有免费和收费两个版本,使用起来都还可以

其它(镜像一致性)

确保镜像一致的方法有两种:Image ID和Digest,我的理解是
Image ID是宿主机用来使用的唯一id,镜像被拉取或导入都有。
Digest是镜像仓库用来使用的唯一id,只有拉取和推送后才有。
而对于一些多架构的镜像来说上面两个值均有可能发生变化,但同架构系统之间会是一样的。
因此对于docker的一致性,更建议的是通过创建时间来确认,尤其是同样都是latest,哪个版本更新。另外从数据的安全性来说,也是更推荐直接从hub.docker或官方中去获取。


链接:https://pan.quark.cn/s/74c7863110a7,提取码:15hN

推荐文章: 令人头疼的 docker 代理问题,我整理了解决方法和验证方案 - 知乎

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 17:22:48

D3.js数据标签防重叠5步实战教程:从入门到精通

D3.js数据标签防重叠5步实战教程:从入门到精通 【免费下载链接】d3 Bring data to life with SVG, Canvas and HTML. :bar_chart::chart_with_upwards_trend::tada: 项目地址: https://gitcode.com/gh_mirrors/d3/d3 D3.js作为业界领先的数据可视化库&#x…

作者头像 李华
网站建设 2026/4/27 6:28:17

类,对象基础概念 var与dynamic对比 字典基础用法 冒泡与选择排序

面向对象编程核心概念总结一、类 vs 对象概念说明类比类 (Class)蓝图/模板,定义属性和方法建筑设计图纸对象 (Object)类的实例,有具体数据按图纸建好的房子实例化从类创建对象的过程按图纸施工csharp// 定义类(蓝图) public class…

作者头像 李华
网站建设 2026/4/25 22:29:16

点赞之交,朋友圈里的“虚情”与“假意”

点击文末“阅读原文”即可参与节目互动剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / 声湃轩北京录音间在这个“点赞”即“已阅”的时代,我们的朋友圈究竟是生活的记录册,还是精心修饰的橱窗…

作者头像 李华
网站建设 2026/4/26 17:43:01

GAIA基准实战指南:构建智能助手评估体系的完整方案

GAIA基准实战指南:构建智能助手评估体系的完整方案 【免费下载链接】agents-course This repository contains the Hugging Face Agents Course. 项目地址: https://gitcode.com/GitHub_Trending/ag/agents-course 面对市场上琳琅满目的AI助手,你…

作者头像 李华
网站建设 2026/4/27 9:11:29

好用的安全帽撞击体验机构

好用的安全帽撞击体验机构引言在建筑施工等行业中,安全帽的重要性不言而喻。而安全帽撞击体验能够让从业者更直观地感受安全帽的防护作用,从而提高安全意识。市场上也出现了不少提供安全帽撞击体验服务的机构,筑小安便是其中好用且可靠的一家…

作者头像 李华
网站建设 2026/4/23 3:47:23

3分钟掌握PostHog自托管:从零开始的完整部署实战

你是否曾因商业分析工具的高昂费用而苦恼?是否担心数据隐私无法得到保障?开源产品分析平台PostHog提供了完美的解决方案。本文将带你从零开始,3分钟内完成PostHog的完整自托管部署,无需专业运维知识,全程跟随操作即可拥…

作者头像 李华