跳到元数据的末尾
进入元数据的开始

概述

在几分钟内建立一个安全的私有Docker注册表来管理所有的Docker映像,同时进行细粒度的访问控制。JFrog容器注册表没有任何限制,允许你设置任意数量的Docker注册表本地、远程和虚拟Docker存储库,并与Docker客户端透明地工作,以管理所有Docker映像,无论是内部创建还是从Docker Hub等远程Docker注册中心下载。

多个Docker注册表
JFrog容器注册表允许你创建任意数量的Docker注册表。这使您能够在不同的注册表中管理每个项目,并对Docker映像进行更好的访问控制。

自然使用Docker

的相关调用Docker注册API这样你就可以透明地使用Docker客户端通过JFrog容器注册表访问图像。

具有细粒度访问控制的安全私有Docker注册表
本地Docker存储库是存储内部Docker映像以便在整个组织中分发的地方。具有内置的细粒度访问控制安全特性, JFrog Container Registry提供了安全的Docker推送和拉,本地Docker存储库作为功能齐全、安全、私有的Docker注册库。

一致且可靠地访问远程映像
远程Docker存储库在JFrog容器注册中心代理外部注册中心,如Docker Hub,或另一个JFrog容器注册中心实例中的Docker存储库,并缓存下载的图像。因此,整体网络减少,并且对这些远程资源上的映像的访问更快、一致和可靠。2022世界杯阿根廷预选赛赛程

自信地将图像推广到生产
JFrog容器注册表让您提升Docker映像,作为不可变的、稳定的二进制文件,通过质量闸门一直到生产。

智能搜索
使用JFrog Container Registry的包搜索,使用图像名称,标签或摘要,以最自然的方式为Docker找到您的图像。

注册中心和存储库

JFrog容器注册表和Docker都使用术语“存储库”,但使用方式不同。

一个码头工人库带有标记的图像的托管集合是否一起为容器创建文件系统

一个码头工人注册表是存储Docker存储库的主机吗

一个JFrog容器注册库Docker是Docker存储库的一个托管集合,实际上是一个Docker注册表,你可以通过Docker客户端透明地访问它。

由于JFrog容器注册表对你可以创建的存储库的数量没有限制,你可以在JFrog容器注册表中管理任意数量的Docker注册表。



JFrog容器注册表作为Docker注册表开始

使用Docker和JFrog容器注册表主要有两种方式:

  • JFrog容器注册云帐户
  • JFrog集装箱注册表

详情请参阅开始使用JFrog容器注册表作为Docker注册表


配置Docker存储库

当使用Docker时,JFrog容器注册表支持三种类型的存储库:

  • 局部存储库是存放内部Docker映像的地方。通过JFrog Container Registry的安全功能,这些都是安全的私有Docker注册表。
  • 远程存储库用于代理远程Docker注册表,例如Docker Hub。
  • 虚拟存储库可以聚合多个Docker注册表,这样就可以使用一个端点来推送和拉出Docker映像。这使得管理员可以在用户不知情的情况下管理不同的Docker注册表,并继续使用相同的端点。

**如果Docker使用Port方法,请确保进入每个存储库的高级选项卡并设置注册表端口。然后,反向代理生成器应该为指定的端口添加一个新节。

命名Docker存储库时不使用下划线

由于Docker客户端的限制,Docker注册表名称中不允许使用下划线。因此,在命名JFrog Container Registry Docker存储库时,不应该使用下划线。例如,Docker客户端将不能与命名为test_docker_repo无论如何使用名为test.docker.repo


本地Docker存储库

本地Docker存储库是您可以部署和托管内部Docker映像的地方。实际上,它是一个Docker注册表,能够承载标记Docker映像的集合,这些映像就是Docker存储库。一旦托管了映像,就可以执行细粒度的访问控制,并在整个组织中共享它们。

要定义一个本地Docker存储库,请遵循以下步骤:

  1. 创建一个新的局部存储库并设置码头工人随着包装类型。
  2. 设置库的关键,在“Docker Settings”区域,选择V2作为Docker API版本。

  3. 最大唯一标签.这指定了每个存储库应该为Docker映像存储的唯一标记的最大数量。一旦图像的标签数量超过这个数量,旧的标签将被删除。将该字段保留为空(默认值)意味着将存储所有标记。

新的本地Docker存储库

远程Docker存储库

使用Docker,您可以通过远程存储库代理远程Docker注册表。一个远程存储库定义在JFrog容器注册表作为一个缓存代理注册表管理在远程URL,如https://registry-1.docker.io/(这是Docker Hub),甚至是由JFrog容器注册表的另一个实例在远程站点管理的Docker存储库

从远程存储库请求的Docker映像将按需缓存。您可以从远程存储库缓存中删除下载的映像,但是,您不能手动将Docker映像推送到远程Docker存储库。

定义一个远程存储库来代理远程Docker注册表,请遵循以下步骤:

  1. 创建一个新的远程存储库并设置码头工人随着包装类型。
  2. 设置库的关键属性中指定远程注册中心的URLURL

    新的远程Docker存储库

    如果您正在代理Docker Hub,请使用https://registry-1.docker.io/作为URL,并确保启用令牌认证复选框被选中(这些是默认设置)。

Docker存储库路径和域


当通过JFrog Container Registry访问远程Docker存储库时,存储库URL必须加上前缀api /码头工人在路上。

例如:

http://my-remote-site:8081/jfrogcontainer注册表/api /码头工人> / <库关键


虚拟Docker仓库

JFrog容器注册表支持虚拟Docker存储库。一个虚拟存储库在JFrog容器注册表中定义的集合了包括在虚拟存储库中的本地和远程存储库中的映像。

这允许您访问本地Docker存储库上托管的映像,以及由远程Docker存储库代理的远程映像,并通过为虚拟存储库定义的单个URL访问所有这些映像。使用虚拟存储库非常有用,因为用户将继续使用虚拟存储库,而管理员可以管理包含的存储库,替换默认部署目标,并且这些更改对用户是透明的。

要定义一个虚拟Docker存储库,请遵循以下步骤:

  1. 创建一个新的虚拟存储库并设置码头工人随着包装类型。
  2. 设置库的关键价值。

  3. 选项中包含的底层本地和远程Docker存储库存储库部分。
  4. 您还可以选择配置您的默认部署存储库这是上传到虚拟存储库的Docker映像将被路由到的存储库,一旦配置好了,您的虚拟Docker存储库就是一个成熟的Docker注册表。使用默认部署存储库,您可以设置虚拟存储库来包装一系列表示管道阶段的存储库,然后促进图像从默认部署存储库通过管道到生产。任何表示此虚拟存储库中管道中的一个阶段的存储库都可以根据需要配置为经过身份验证或未经身份验证(匿名)访问的权限。

新的Docker虚拟存储库

解析最新Docker映像

设置虚拟Docker存储库根据Docker映像的修改时间拉出Docker映像,启用根据最新时间戳解析Docker标签.这在两个或多个聚合存储库包含相同标记名的场景。例如,busybox: 1.1

启用后,JFrog容器注册表将返回最后部署到虚拟存储库中的一个聚合存储库中的Docker映像,而不是获取虚拟存储库中分辨率顺序较高的映像。JFrog Container Registry将首先根据修改时间尝试从本地存储库中获取标签,如果没有找到,它将继续按照分辨率顺序尝试从远程存储库中获取图像。

此功能对于在两个不同实例上创建相同映像的多站点环境非常有用。


反向代理设置

JFrog容器注册表支持通过反向代理访问Docker注册表子域法或通过端口绑定),或使用直接访问

当通过反向代理访问时,如果你正在使用JFrog容器注册表反向代理配置生成器下配置Docker存储库的反向代理设置先进的设置选项卡。

详情请参阅Docker反向代理设置


Docker形象推广

JFrog Container Registry支持将Docker映像从JFrog Container Registry中的一个Docker存储库提升到另一个Docker存储库。

当你需要通过不同的验收和测试阶段移动Docker映像时,提升是有用的,例如,从开发存储库,通过不同的网关一直到生产。使用推广可以确保您的生产环境中的映像是由CI服务器构建并通过所有相关测试的映像,而不是多次重新构建映像。

使用以下带有cURL的端点可以触发升级:

POST api/docker//v2/promote {"targetRepo": "", "dockerRepository": "", "tag": "", "targetTag": "", "copy": }

地点:

repoKey 源存储库密钥
targetRepo 要移动或复制的目标存储库
dockerRepository 要提升的docker存储库名称
标签 要提升的可选标记名,如果为空—整个docker存储库将被提升。默认值:“最新”
targetTag 新标签,图像应该有后推广,如果你想
复制 当为true时,将提升映像的副本。当为false时,映像被移动到目标存储库

一个提升docker形象的例子“jfrog / ubuntu”所有的标签都来自docker-localdocker-prod使用cURL将是:

curl -i -uadmin:password -X POST "https://artprod.company.com/v2/promote" -H "Content-Type: application/json" -d '{"tagetRepo":"docker-prod","dockerRepository":"jfrog/ubuntu"}'


注意,上面的示例是通过反向代理执行的。要直接通过JFrog容器注册表,您将执行以下命令:

curl -i -uadmin:password -X POST "http://localhost:8080/jfrogcontainerregistry/api/docker/docker-local/v2/promote" -H "Content-Type: application/json" -d '{"targetRepo":"docker-prod","dockerRepository":"jfrog/ubuntu"}'


属性的特定版本添加重标记。jfrog / ubuntu”图像(4.9.0)被重新标记为“最新”,因为它得到了提升:


curl -i -uadmin:password -X POST "https://artprod.company.com/v2/promote" -H "Content-Type: application/json" -d '{"targetRepo":"docker-prod","dockerRepository":"jfrog/ubuntu", "tag":" 4.9.0", "targetTag":" latest"}'



推拉图像

给我介绍

得到相应的码头工人推而且码头工人拉命令,在树浏览器中选择它,然后单击给我介绍按钮。


浏览Docker存储库

有关如何浏览存储库的一般信息,请参阅正在浏览JFrog容器注册表

码头工人信息TAB显示了三个部分:标签信息Docker标签可视化,标签

标签信息

显示所选标签的基本细节。

Docker标签信息

标题
Docker标记名。
消化

标签的SHA 256摘要。

总大小
图像的总大小
标签数

附在这个标签上的标签数。

点击标签计数,可在屏幕下方查看所附标签。

Docker标签可视化

本节映射用于生成所选标记的全部命令集以及相应层的摘要。从本质上讲,您将看到使用相同系列的命令码头工人的历史

您可以选择图像的任何图层来查看以下属性:

象征 财产
层ID
图层大小
创建层时的时间戳
创建层的命令

Docker标签可视化

标签

此部分显示附加到图像的标签。

码头工人的标签

JFrog货柜注册处提取与Docker映像相关的任何标签,并在manifest.json文件,您可以使用它来指定搜索参数,这可以用来轻松地添加额外的元数据到任何图像。

Docker标签属性


正在搜索Docker图像

你可以使用JFrog Container Registry's通过名称、标签或图像摘要来搜索Docker图像包搜索或者通过REST API

码头工人搜索


列出Docker映像

JFrog容器注册表支持以下与Docker注册表相关的REST API端点:

JFrog容器注册表还支持此端点的分页。

属性从缓存中读取Docker存储库列表Docker标签rest api,设置jfrogcontainerregistry.docker.catalogs.tags.fallback.fetch.remote.cache在jfrogcontainerregistrysystem中将系统属性设置为true(默认为false)。属性文件:

##启用从Docker存储库的缓存中读取#jfrogcontainerregistry.docker.catalogs.tags.fallback.fetch.remote.cache=true

JFrog容器注册表需要重新启动才能生效。


将图像推到Bintray

通过JFrog Container Registry与JFrog Bintray的紧密集成,您可以将Docker镜像从您的JFrog Container Registry Docker Registry直接推送到Bintray。要启用此功能,请确保在用户配置文件页面中正确配置了Bintray凭据。

要将图像推入Bintray,请使用分布存储库


删除和清理

JFrog容器注册表本身支持删除标记和存储库,并符合Docker Hub规范。

删除Docker标记和存储库会自动清除剩下的任何孤立层(未被任何其他标记/存储库使用的层)。

目前Docker客户端不支持DELETE命令,但可以手动触发删除。要使用cURL删除整个Docker存储库,执行以下命令:

curl -u -X DELETE "/jfrogcontainerregistry//<镜像命名空间>"

或者对于特定的标签版本:

curl -u -X DELETE "/jfrogcontainerregistry//<图像命名空间>/<标签>"


例如,要删除Ubuntu存储库的最新标签:

//删除"jfrog/ubuntu"库的最新标签curl -uadmin:password -X DELETE "https://artprod.company.com/jfrogcontainerregistry/dockerv2-local/jfrog/ubuntu/latest"

空目录

删除存储库或标记后留下的任何空目录将在下一个文件夹修剪作业期间自动删除(默认每5分钟执行一次)。

限制唯一标签

为了避免Docker注册表中由于为一个图像上传了许多快照而造成的混乱和膨胀,请设置最大唯一标签本地Docker存储库配置以限制唯一标记的数量。


Docker构建信息

通过使用JFrog CLI运行Docker构建,您可以在JFrog容器注册表中存储详尽的构建信息。

JFrog CLI从您的构建代理收集构建信息,然后将其发布到JFrog容器注册表。发布后,构建信息可以在检查的构建构建

有关使用JFrog CLI集成Docker的更多细节,请参考构建Docker图像请参见《JFrog CLI用户指南》。


从Docker V1迁移到Docker V2

如果你还在使用Docker V1,我们强烈建议你升级到Docker V2。这需要您迁移为Docker V1创建的所有Docker存储库,并通过一个简单的cURL端点完成。

详情请参阅将V1存储库迁移到V2使用Docker V1文档。

使用Docker V1?

本文档展示了如何在Docker V2中使用JFrog容器注册表。如果您使用的是Docker V1,请参考使用Docker V1