Docker 仓库(Registry)——AI教你学Docker

1.7 Docker 仓库(Registry)详解

Docker 仓库(Registry)是用于存储、分发和管理镜像(Image)的中心服务,是实现镜像分享、自动化部署、团队协作及生产环境运维的基石。

一、核心概念

  • Registry(注册服务器):镜像存储和分发的服务端应用(如 Docker Hub、Harbor、官方 registry)。
  • Repository(仓库/镜像仓库):同一类镜像的集合(如 nginx 是一个 repository,包含多个版本)。
  • Image(镜像):构建和运行容器的基础文件,是仓库中的具体对象,可以有多个标签(tag)。
  • Tag(标签):同一仓库下镜像的不同版本标识(如 nginx:1.25, nginx:latest)。

二、仓库的类型

1. 公有仓库(Public Registry)

  • 任何人都可拉取(pull)镜像。
  • 典型代表:Docker Hub、Google Container Registry、Quay.io 等。
  • 适合开源项目、公开分发、学习交流。

2. 私有仓库(Private Registry)

  • 仅授权用户/团队可访问。
  • 提供企业级权限管控、审计、安全扫描等功能。
  • 典型代表:Harbor、私有部署的 registry、阿里云容器镜像服务等。
  • 适合企业内部、敏感镜像、CI/CD 自动化场景。

三、常见 Registry 服务

1. Docker Hub

  • Docker 官方公共仓库,社区最大。
  • 支持免费/付费账户、团队管理、自动构建。

2. Docker 官方 Registry

  • 官方开源 registry 镜像,支持本地/局域网私有部署。
  • 部署简单,可自定义存储、认证等。

3. Harbor

  • CNCF 毕业项目,企业级容器镜像仓库。
  • 支持镜像管理、权限控制、镜像扫描、复制同步、图形化界面。

四、与 Registry 相关的常用命令

1. 拉取镜像(pull)

docker pull [仓库地址/]仓库名[:标签]
# 例:docker pull nginx:latest
# 私有仓库:docker pull registry.example.com/myapp:1.0

2. 推送镜像(push)

  1. 打标签(tag):
    docker tag 源镜像[:标签] [仓库地址/]仓库名[:标签]
    # 例:docker tag myapp:latest registry.example.com/myapp:1.0
    
  2. 登录仓库(如私有仓库需认证):
    docker login registry.example.com
    
  3. 推送镜像
    docker push registry.example.com/myapp:1.0
    

3. 搜索镜像(search)

docker search nginx
# 只适用于 Docker Hub,私有仓库需 Web 界面或 API

4. 删除镜像

  • 本地删除:docker rmi 镜像名:标签
  • 仓库删除:依赖仓库支持(如 Harbor 提供 Web 界面删除)

五、私有 Registry 的搭建(以官方 registry 镜像为例)

  1. 启动 registry 容器

    docker run -d -p 5000:5000 --name registry registry:2
    
  2. 推送镜像到私有仓库

    # 打标签
    docker tag hello-world localhost:5000/hello-world
    # 推送
    docker push localhost:5000/hello-world
    
  3. 拉取镜像

    docker pull localhost:5000/hello-world
    
  4. 配置 HTTPS 和认证(生产环境推荐)

    • 自签/CA 证书
    • 配置 basic auth 或集成 LDAP/企业认证

六、加速器(镜像加速服务)

  • 由于网络原因,国内用户拉取 Docker Hub 镜像经常受限,可使用加速服务:
    • 阿里云、DaoCloud、网易云、七牛云等均提供加速器地址。
    • 配置方法(daemon.json):
      {
        "registry-mirrors": ["https://your-mirror.com"]
      }
      
  • 加速器只影响拉取(pull),不影响私有仓库推送。

七、常见问题与安全建议

问题

  • 拉取失败:检查网络、仓库地址、认证是否正确。
  • 推送失败:检查权限、仓库空间、网络防火墙。
  • Tag 错误:仓库地址和镜像名需一致,注意大小写和命名规范。
  • 私有仓库未启用 HTTPS 被拒绝:可在测试环境用 insecure-registries 配置,生产务必启用 HTTPS。

安全建议

  • 生产环境建议用私有仓库,并开启认证、TLS 加密。
  • 定期扫描镜像安全漏洞(如 Harbor 支持自动扫描)。
  • 控制仓库访问权限,防止敏感镜像泄露。
  • 管理镜像生命周期,定期清理无用镜像。

八、Registry 相关命令速查

docker login registry.example.com            # 登录仓库
docker logout registry.example.com           # 登出仓库
docker tag myapp:1.0 registry.example.com/myapp:1.0  # 镜像打标签
docker push registry.example.com/myapp:1.0   # 推送镜像
docker pull registry.example.com/myapp:1.0   # 拉取镜像

九、参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值