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

概述

在几分钟内建立一个安全的私有Docker注册表来管理所有的Docker映像,同时进行细粒度的访问控制。一个rtifactory places no limitations and lets you set up any number of Docker registries, through the use of local, remote and virtual Docker repositories, and works transparently with the Docker client to manage all your Docker images,无论是内部创建还是从远程Docker资源(如Docker Hub)下载。2022世界杯阿根廷预选赛赛程

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

自然使用Docker

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

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

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

自信地将图像推广到生产
Artifactory让你推广Docker图像,作为不可变的、稳定的二进制文件,通过质量闸门一直到生产。

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

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

注册中心和存储库

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

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

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

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

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



如何开始使用Artifactory作为Docker注册表

在Artifactory中开始使用Docker有三种主要方式:

  1. Artifactory SaaS账号
  2. 使用Docker撰写(1分钟设置)
  3. Artifactory On-Prem

详情请参阅开始使用Artifactory作为Docker注册表


配置Docker存储库

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

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

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

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

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

本地Docker存储库

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

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

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

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

新的本地Docker存储库

远程Docker存储库

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

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

防止Docker远程注册表限制所需的操作

来自Artifactory 6.23.1。,in lieu of the latest Docker remote repository limitations enforced by Docker, anonymous users will be blocked when reaching the download rate limit of 100 pulls per six hours. To prevent this from happening, you are required to authenticate the Docker Hub pull requests, by setting your user and password in your Basic Remote Docker Repositories.

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

  1. 创建一个新的远程存储库并设置码头工人随着包装类型。
  2. 设置库的关键属性中指定远程注册中心的URLURL字段。
    为了使用您的Docker帐户类型,您需要通过在Basic Remote Docker Repository选项卡中设置您的用户和密码来验证Docker Hub pull请求。

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

  3. 点击高级选项卡来配置高级Docker存储库设置,你可以启用外部层缓存,允许Artifactory下载外部层到Docker远程存储库。


  4. 选择启用外部层缓存复选框,允许Artifactory将外部层下载到Docker远程存储库。
  5. 当尝试下载外部图层时,您可以通过设置包括模式以匹配外部url来应用模式白名单。

    指定ant风格路径表达式的白名单,指定可以从哪里下载外部层。支持的表达式包括(**?).
    缺省情况下,该字段设置为**这意味着外部层可以从任何外部源下载。
    例如,指定“**/”github.com/ * *将只允许下载外部层从github.com宿主

  6. 若要配置网络设置,请参见网络设置
  7. 点击保存并完成

Docker存储库路径和域

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

例如:

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

虚拟Docker仓库

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

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

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

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

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

新的Docker虚拟存储库

解析最新Docker映像

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

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

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

REST API

也可以通过设置resolveDockerTagsByTimestamp参数为true(默认为false)时创建一个新的存储库使用REST API。

反向代理设置

Artifactory支持通过反向代理访问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介绍我


浏览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端点:

从版本5.4.6开始,Artifactory还支持此端点的分页。

从版本6.8开始,使用ListDockerRepositoriesListDockerTagsrest api,设置artifactory.docker.catalogs.tags.fallback.fetch.remote.cache在artifact . System .properties文件中,系统属性为true(默认为false):

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

需要重新启动Artifactory才能使更改生效。


将图像推到Bintray

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

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


删除和清理

Artifactory本身支持删除标记和存储库,并符合Docker Hub规范。

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

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

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

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

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


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

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

空目录

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

限制唯一标签

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


Docker构建信息

通过使用JFrog CLI运行Docker构建,你可以在Artifactory中存储详尽的构建信息。

JFrog CLI从您的构建代理收集构建信息,然后将其发布到Artifactory。发布后,构建信息可以在构建浏览器构建

有关使用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中使用Artifactory。如果您使用的是Docker V1,请参考使用Docker V1


支持矩阵

这个矩阵提供了关于作为Artifactory进度版本所支持的特性的信息。

Artifactory版本 Docker客户端版本 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 + < 16 (勾选)
(错误)
(错误)
(错误)

*仅支持Docker V2 API