与Artifactory Cloud合作
3.设置认证
在Docker V1中使用Artifactory时,您需要手动设置凭据,将以下部分添加到您的~ / .docker / json
文件。
{"auths":{"https://artprod.company.com":{"auth": ": (转换为64进制)","email": "youremail@email.com"}, "https://artdev.company.com":{"auth": " : (转换为64进制)","email": "youremail@email.com"}}}
4.推拉图像
在使用Docker V1时,推送和提取图像的方式与使用Docker V2时相同。
观看录像
一旦你完成了上面的设置,你应该能够使用Docker客户端在Artifactory中透明地将图像推送到Docker存储库中并从Docker存储库中提取图像。你可以在下面的截屏中看到这一点。
浏览Docker存储库
Artifactory将docker图像存储在一个由2个主要目录组成的布局中:
- .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推广Docker映像的方法完全相同。
将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存储库名称,如果为空—整个源存储库将被迁移。默认值:" |
<标记> |
要提升的可选标记名,如果为空—整个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" //删除"jfrog/ubuntu"资源库中的"12.04"标签curl -uadmin:password -X DELETE "https://artprod.company.com/v1/repositories/jfrog/ubuntu/tags/12.04"
空目录
删除存储库或标记后留下的任何空目录将在下一个文件夹修剪作业期间自动删除(默认每5分钟执行一次)。
高级的主题
使用自签名SSL证书
从Docker 1.3.1版本,y您可以使用自签名SSL证书码头工人推/拉
命令,但是要使其工作,您需要指定——insecure-registry
每个不安全注册表的守护进程标志。
详情请参阅码头工人的文档.
例如,如果您将Docker作为服务运行,请编辑/etc/default/docker
文件,并附加——insecure-registry
标记你的注册表URL到DOCKER_OPTS变量,如下例所示:
DOCKER_OPTS = " - h unix: / / / var /运行/码头工人。袜子——insecu-registry artprod.company.com"
需要重新启动Docker服务才能生效。
如果你正在使用Boot2Docker,详情请参阅Boot2Docker文档不安全的注册表.
如果您没有对的——insecure-registry
Daemon标志,你应该得到以下错误:
错误:无效注册表端点https://artprod.company.com/v1/:获取https://artprod.company.com/v1/_ping: x509:由未知权威签署的证书。
替代代理服务器
除了NGINX,你还可以设置Artifactory来使用Apache与Docker一起工作。
Apache配置
下面的示例配置在端口443上配置SSL和服务器名artprod.company.com.
端口绑定
如果要使用多个存储库,则需要复制NGINX配置并将不同的端口绑定到Artifactory中的每个本地存储库。
绑定非443的端口时,请注意代理标头的配置必须与端口号附加在proxy_set_header
线。
例如,对于运行在端口444上的服务器,您应该编写proxy_set_header主机$ Host:444
.
Docker存储库路径和域
当通过Artifactory访问Docker存储库时,存储库URL必须加上前缀api /码头工人在路上。
您可以从UI复制完整的URL给我介绍当在树浏览器中选择存储库时。
例如,如果你使用Artifactory独立或作为本地服务,你可以使用以下URL访问Docker存储库:
http://localhost:8081/artifactory/api /码头工人<库关键>
此外,Docker存储库的域必须表示为显式的IP地址。唯一的例外是在本地工作时,可以使用本地主机域名作为代理通道。