帕特里克·罗素
2021-04-25 07:16
相关版本此信息与…有关人工版本4.0.2及以上
在排除Docker错误时,最好比较一下是什么应该发生的反对你的体制目前经历。你可以通过模拟来消除大量的噪音每一个步骤您的客户端正在获取并检查Artifactory返回的HTTP错误代码。一般来说,这些是错误代码你可能遇到的和它们的含义:
403和401:身份验证问题,请检查授权设置
404:资源未找到,请检查资源存储库
400:不正确的请求,使用旋度为了得到理由短语
50 x服务器有问题,检查一下artifactory.log
使用旋度
的Libcurl终端应用程序基本能跑REST API命令,如GET或PUT选项。你Artifactory请求日志会显示Docker客户端使用的API命令。你可以用那个失败(如request.log文件中所列)或使用其中一种例子下面尝试获取所遇到的问题的进一步信息,以及可能的后续步骤。
基本用法(带#comments):
curl -uadmin #Artifactory-username - vvv# verbossy - k# ignore- unsafe - ssl -XGET #GET-request http://localhost:8081/artifactory/api /系统/平
cURL默认使用GET请求。其他命令,比如把,要求拼字段,以及一个(通常是JSON)数据有效载荷。下面是一个PUT命令示例:
curl -uadmin:password -XPUT -H"Content-type: Application/json" -data '{"name":"test-group"}' http://localhost:8081/artifactory/api/security/groups/test-group
Docker .art.local
以下是当用户尝试使用Docker对Artifactory进行身份验证时发生的后端步骤:
Docker .art.local
"码头工人“在码头工人.art。Local是虚拟存储库的名称
* .art.local反向代理是否为子域Docker存储库配置了web地址
1.Docker客户端检查Artifactory是否存在匿名得到要求:
[$ ARTIFACTORY_HOME /日志/ request.log]
20180523095407 | | 0 |请求127.0.0.1 | non_authenticated_user | | / api /码头工人/码头工人/ v2 / HTTP / 1.0 | |401| 0
的401HTTP代码如果Artifactory不允许匿名访问有问题的存储库,那么应该是预期的。如果一个200好了被Docker客户端看到,那么凭证将不会被使用。
2.Docker客户端获得一个访问令牌:
10042 | 20180523095417 | | 127.0.0.1请求管理| | | / api /码头工人/码头工人/ v2 /令牌| | HTTP / 1.0200| 0
这可以通过下面的cURL命令来复制:
curl -u http://art.local:8081/artifactory/api/docker/docker/v2/token
它返回具有以下令牌值的JSON:
{“令牌”:“AKCp5Z3WYHpAyga9aYGuG4ESxLtC3Y1MAXUmfUemaKmrYvSpsesD4nsX2ezymTjMJLWowZ5LA”,“expires_in”:3600}
Docker拉Docker .art.local/nginx
当用户尝试拉取图像时,应该依次执行以下几个步骤:
Docker拉Docker .art.local/nginx
1.Docker检查清单。文件的Json:
3182 | 20180523095420 | | 127.0.0.1请求管理| | |/ api /码头工人/码头工人/ v2 / nginx /表现/最新HTTP / 1.0 | 200 | 948 |
2.客户端使用manifest文件中的信息来拉出构成图像的图像层:
20180523095420 | | 41 |请求127.0.0.1管理| | | / api /码头工人/码头工人/ v2 / nginx /团/ sha256: ae513a47849c895a155ddfb868d6ba247f60240ec8495482eca74c4a2c13a881 HTTP / 1.0 | 200 | 6028 |
2169 | 20180523095423 | | 127.0.0.1请求管理| | | / api /码头工人/码头工人/ v2 / nginx /团/ sha256:4a99993b863683bef1c776732e14d2372f6ed52b48e94783f4a1b58af289db07 HTTP / 1.0 | 200 | 201 |
这样拉动就完成了。如果一个图层是失踪,则应检查容器的清单,并且所有层请求都应返回a200好了。
Docker推送Docker .art.local/ubuntu
当用户准备好时
推一个图像,在文件上传之前会进行几次检查:
Docker推送Docker .art.local/ubuntu
1.Docker客户端将检查是否存在需要推送的层:
65 | 20180523114900 | | 127.0.0.1请求管理| | |头/ api /码头工人、码头工人、v2 / ubuntu /团/ sha256:471db38bcfbf0f5bac78012b9d458dfd37309d5cbb99d4e95310321a60a0cfdf HTTP / 1.0 | |404| 0
一个
404未找到如果该层在Artifactory中还不存在,那么在这个阶段应该是预期的。
2.客户端运行帖子命令提交blob元数据:
20180523114900 | | 22日请求管理| | 127.0.0.1 | POST | / api /码头工人/码头工人/ v2 / ubuntu /团/上传/ HTTP / 1.0 | 202 | 0 |
3.客户会补丁剩下的blob元数据到Artifactory:
请求60 20180523114900 | | | 127.0.0.1 |管理| |补丁/ api /码头工人/码头工人/ v2 / ubuntu /团/上传/ 5582 de7a - 3127 - 48 - d9 bcb5 d61734f14e36 HTTP / 1.0 | 202 | 0 |
4.最后客户端发送层二进制:
122 | 20180523114900 | | 127.0.0.1请求管理| |把| / api /码头工人/码头工人/ v2 / ubuntu /团/上传/ 5582 de7a - 3127 - 48 - d9 bcb5 d61734f14e36 HTTP / 1.0 | 201 | 0 |
5.人工地将二进制文件从一个临时的_uploads文件夹到Docker镜像的主位置,即存储库的基目录:
![用户添加图片"src=]()