有问题吗?想要报告问题?联系JFrog技术支持

跳到元数据的末尾
转到元数据的开始

在几分钟内设置一个安全的私有Docker注册表来管理所有Docker映像,同时行使细粒度的访问控制。Artifactory没有限制,允许您设置任意数量的Docker注册表通过使用本地、远程和虚拟Docker存储库,并透明地与Docker客户端一起管理您的所有Docker映像。无论是内部创建的还是从远程Docker资源(如Docker Hub)下载的。2022世界杯阿根廷预选赛赛程

多个Docker注册表
Artifactory允许您定义任意多的Docker注册表。这使您能够在不同的注册表中管理每个项目,并对Docker映像进行更好的访问控制。

自然地使用Docker

类的相关调用 Docker注册API 以便您可以透明地使用Docker客户端通过Artifactory访问映像。

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

对远程映像的一致和可靠访问
远程Docker存储库在Artifactory中代理外部资源,如Docker Hu2022世界杯阿根廷预选赛赛程b,或另一个Artifactory实例中的远程Docker存储库,并缓存下载的映像。因此,减少了总体网络连接,并且对这些远程资源上的映像的访问更快、更一致、更可靠。2022世界杯阿根廷预选赛赛程

自信地促进图像生产
Artifactory让你提升Docker镜像,作为不可变的,稳定的二进制文件,从质量关口一直到生产。

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

JFrog端到端平台
通过Artifactory与JFrog Bintray的紧密集成,您可以管理从开发到管道,一直到发布的Docker映像。

注册中心和存储库

Artifactory和Docker都使用“存储库”这个术语,但它们的使用方式不同。

一个码头工人库是一个托管的标记映像集合,它们一起创建容器的文件系统吗

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

一个Artifactory库是Docker存储库的托管集合,有效地,Docker注册表并且可以通过Docker客户端透明地访问。

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


开始使用Artifactory作为Docker注册表

有三种主要的方法来开始使用Docker和Artifactory:

  1. 人工SaaS账户
  2. 使用Docker Compose(1分钟设置)
  3. Artifactory On-Prem

详情请参阅Docker和Artifactory入门


配置Docker存储库

Artifactory在使用Docker时支持三种类型的存储库:

局部存储库是放置内部Docker映像的地方。通过Artifactory的安全功能,这些都是安全的私有Docker注册表。

远程存储库用于代理远程Docker资源,如Docker Hub。2022世界杯阿根廷预选赛赛程

虚拟存储库可以聚合多个Docker注册表,从而使您可以使用单个端点来推送和提取Docker映像。这使得管理员可以在用户不知情的情况下管理不同的Docker注册表,并继续在相同的端点上工作。

本地Docker存储库

本地Docker存储库是您可以部署和托管内部Docker映像的地方。实际上,它是一个Docker注册表,能够托管标记的Docker映像集合,这些映像就是您的Docker存储库。一旦您的映像被托管,您就可以执行细粒度的访问控制,并通过复制或由其他Artifactory实例中的存储库代理在整个组织中共享它们。

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

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

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

新的本地Docker存储库

远程Docker存储库

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

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

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

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

    新的远程Docker存储库

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

Docker存储库路径和域

当通过Artifactory访问远程Docker存储库时,存储库URL必须以api /码头工人在小路上。

可以从UI中复制完整的URL帮我介绍当在树浏览器中选择存储库时。

例如,如果你使用Artifactory独立或作为本地服务,你可以使用以下URL访问远程Docker存储库:

http://my-remote-site: 8081 / artifactory / api /码头工人/ <库关键>

此外,Docker存储库的域必须用显式IP地址表示。惟一的例外是在本地工作时,您可以使用本地主机域名作为代理通道。

虚拟Docker存储库

从版本4.1开始,Artifactory支持虚拟Docker存储库。一个虚拟存储库Artifactory中定义的集合了包含在虚拟存储库中的本地和远程存储库中的映像。

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

按照以下步骤定义虚拟Docker存储库:

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

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

新的Docker虚拟存储库

反向代理设置

Docker需要反向代理。如果您正在使用Artifactory反向代理配置文件中配置Docker存储库的反向代理设置先进的设置选项卡。

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


推广Docker镜像

Artifactory支持将Docker镜像从Artifactory中的一个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"}'


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

curl -i -uadmin:password -X POST "http://localhost:8080/artifactory/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存储库

有关如何浏览存储库的一般信息,请参考浏览Artifactory

码头工人信息TAB分为三部分:标签信息Docker标签可视化,标签

标签信息

显示所选标记的基本详细信息。

Docker标签信息

标题 Docker标签名称。
消化

标记的SHA 256摘要。

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

附在标签上的标签数。

单击标签计数,可在屏幕底部查看附加标签。

Docker标签可视化

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

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

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

Docker标签可视化

标签

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

码头工人的标签

还要注意的是,从版本4.4.0开始,Artifactory提取了与Docker镜像相关的任何标签,并在Docker镜像上创建相应的属性manifest.json文件,您可以使用它来指定搜索参数,这可以用于轻松地向任何图像添加额外的元数据。

Docker标签属性


搜索Docker镜像

您可以使用Artifactory's通过名称、标签或图像摘要搜索Docker映像包搜索或者通过REST API

码头工人搜索


Docker镜像清单

从4.4.3版本开始,Artifactory支持使用Docker镜像列表REST API。这个端点模拟Docker_catalogREST API。


将图像推到Bintray

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

要将图像推送到Bintray,请在树浏览器中选择它并选择推到Bintray行动菜单。

Artifactory将显示一个对话框,让您选择要将映像推送到的Bintray存储库。包名和标记从您正在推送的映像自动派生。

Bintray库字段时,Artifactory显示Bintray帐户中存储库的完整列表。确保为映像选择了Bintray Docker存储库。

将Docker映像推送到Bintray

详情请参阅推到Bintray


删除和清理

Artifactory原生支持移除标签和存储库,并符合Docker Hub规范。

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

目前,Docker客户端不支持DELETE命令,但可以使用cURL手动触发删除,如下所示。

curl -u -X DELETE "//:"

例如:

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

空目录

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

限制唯一标签

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


从Docker V1迁移到Docker V2

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

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

使用Docker V1?

本文档展示了如何在Docker V2中使用Artifactory。如果您使用的是Docker V1,请参考使用Docker V1


支持矩阵

这个矩阵提供了随着Artifactory版本的进展所支持的特性的信息。

Artifactory版本 Docker Client版本 Docker V1 API Docker V2 API 远程存储库* 虚拟存储库*
4.9 + 1.12 (勾选) (勾选) (勾选) (勾选)
4.8 + 1.11

(勾选)

(勾选) (勾选) (勾选)
4.4.3 + 1.10 (勾选) (勾选) (勾选) (勾选)
4.1 + 1.8 + (勾选) (勾选) (勾选) (勾选)
4.0.2 + 1。8 (勾选) (勾选) (勾选)
(错误)
4.0.0 + 16 + (勾选) (勾选) (勾选)
(错误)
4.0.0 + < 1。6 (勾选)
(错误)
(错误)
(错误)

*仅支持Docker V2 API