与Artifactory Cloud一起工作
3.设置认证
在Docker V1中使用Artifactory时,您需要手动设置凭据,方法是将以下部分添加到您的~ / .docker / json
文件。
{"auth": {"https://artprod.company.com":{"auth": ": (base64)", "email": "youremail@email.com"}, "https://artdev.company.com":{"auth": " : (base64)", "email": "youremail@email.com"}}
4.推拉图像
使用Docker V1时,推送和拉取映像的方式与使用Docker V2时相同。
观看视频
一旦你完成了上面的设置,你应该能够使用Docker客户端透明地在Artifactory的Docker存储库中推送和提取图像。你可以在下面的截屏中看到这一点。
浏览Docker存储库
Artifactory将docker映像存储在一个由两个主要目录组成的布局中:
- .images:存储所有平面docker映像。
- 存储库:用标签存储所有存储库信息(类似于存储库在Docker Hub中的存储方式)。
此外,Artifactory用两个属性注释每个部署的docker镜像:
- docker.imageId:图像id
- docker.size:以位为单位的图像大小
部署的标签也用两个属性注释:
- docker.tag.name:标签名称
- docker.tag.content:此标记指向的图像的id
查看Docker镜像树
Artifactory允许您直接从UI中查看特定图像的完整图像树,其方式与从Docker镜像——树
命令。
在工件模块树浏览器,向下钻取图像你想检查。元数据显示在码头工人的祖先选项卡。
查看单个Docker镜像信息
在工件模块树浏览器,向下钻取以选择要检查的图像。元数据显示在码头工人信息选项卡。
搜索Docker镜像
除了与Docker存储库相关的其他属性外,您还可以使用名为docker.repoName
,表示存储库名称(例如,图书馆/ ubuntu
)。
使用V1提升Docker镜像
使用Docker V1提升Docker镜像的方式与使用Docker V2提升镜像的方式完全相同。
将V1存储库迁移到V2
我们建议尽可能使用Docker V2存储库(前提是您的Docker客户端是1.6及以上版本)。
如果你有一个现有的Docker V1存储库,你可以使用cURL将其内容迁移到V2存储库中:
POST api/docker//v1/migrate {"targetRepo": " ", "dockerRepository": " ", "tag": " "}
地点:
< repoKey > |
源存储库密钥(例如,docker-local如本页所述) |
< targetRepo > |
要迁移到的目标Docker V2存储库(例如,docker-local2如本页所示)。类之前应该创建存储库迁移 端点。 |
< dockerRepository > |
可选的要迁移的docker存储库名称,如果为null -整个源存储库将被迁移。默认值:" |
<标记> |
一个可选的标签名,如果为空,整个docker存储库将被提升。默认值:" |
迁移docker镜像的示例“jfrog / ubuntu”
所有的标签都来自docker-local
来docker-local2
使用cURL将是:
curl -i -uadmin:password -X POST "http://localhost:8081/artifactory/api/docker/docker-local/v1/migrate" -H "Content-Type: application/json" -d '{"targetRepo":"docker-local2","dockerRepository":"jfrog/ubuntu"}'
删除和清理
Artifactory本身支持删除标记和存储库,并遵守Docker Hub规范.
删除Docker标签和存储库会自动清理剩下的孤立层(没有被任何其他标签/存储库使用的层)。
目前,Docker客户端不支持DELETE命令,但可以使用cURL手动触发删除。下面是一些例子:
//删除"jfrog/ubuntu"存储库curl -uadmin:password -X DELETE "https://artprod.company.com/v1/repositories/jfrog/ubuntu" //删除"12.04"标签从"jfrog/ubuntu"存储库curl -uadmin:password -X DELETE "https://artprod.company.com/v1/repositories/jfrog/ubuntu/tags/12.04"
空目录
删除存储库或标记后留下的任何空目录将在下一个文件夹修剪作业(默认情况下每5分钟发生一次)期间自动删除。
高级的主题
使用自签名SSL证书
从Docker版本1.3.1开始您可以使用自签名SSL证书码头工人推/拉
命令,但是要使其工作,您需要指定——insecure-registry
每个不安全注册表的守护进程标志。
详情请参阅码头工人的文档.
例如,如果您将Docker作为服务运行,请编辑/etc/default/docker
文件,并追加——insecure-registry
将注册表URL标记为DOCKER_OPTS变量,如下例所示:
DOCKER_OPTS = " - h unix: / / / var /运行/码头工人。袜子——不安全的注册artprod.company.com”
要使其生效,需要重新启动Docker服务。
如果你正在使用Boot2Docker,请参考Boot2Docker文档不安全的注册表.
如果您不进行所需的修改的——insecure-registry
Daemon标志,你应该得到以下错误:
错误:注册表端点无效https://artprod.company.com/v1/:获取https://artprod.company.com/v1/_ping: x509:由未知权威机构签名的证书。
替代代理服务器
除了NGINX,你还可以使用Apache设置Artifactory与Docker一起工作。
Apache配置
下面的示例配置在端口443上配置SSL,服务器名称为artprod.company.com.
端口绑定
如果要使用多个存储库,则需要复制NGINX配置并将不同的端口绑定到Artifactory中的每个本地存储库。
当绑定443以外的端口时,请注意,代理报头的配置必须在配置文件中添加端口号proxy_set_header
线。
例如,对于运行在端口444上的服务器,您应该编写proxy_set_header Host $ Host:444
.
Docker存储库路径和域
当通过Artifactory访问Docker存储库时,存储库URL必须以api /码头工人在小路上。
可以从UI中复制完整的URL帮我介绍当在树浏览器中选择存储库时。
例如,如果你使用Artifactory独立或作为本地服务,你可以使用以下URL访问你的Docker存储库:
http://localhost:8081/artifactory/api /码头工人<库关键>
此外,Docker存储库的域必须用显式IP地址表示。惟一的例外是在本地工作时,您可以使用本地主机域名作为代理通道。