我启动容器注册表:
docker run --name artifactory -d -p 8081:8081 -p 8082:8082 docker.bintray.io/jfrog/artifactory-jcr:latest
我能够使用 UI 登录并创建存储库等
现在我想使用 CLI 登录:
docker login localhost:8082
Username: admin
Password:
来自守护进程的错误响应:Get http://localhost:8082/v2/: received unexpected HTTP status: 503 Service Unavailable
我做错了什么?当我使用本地 192.168.x.x 地址(以及将其添加到我的不安全注册表之后)时,我遇到了同样的错误。
我也试过了,还得找一会
使用我看到的 API:“消息”:“状态代码:503,原因短语:要使用 Artifactory,您必须先接受 EULA”
我没有找到如何使用 UI 对其进行签名,但它是这样工作的:
$ curl -XPOST -vu admin:password http://localhost:8082/artifactory/ui/jcr/eula/accept
之后我就可以登录了:
$ curl -XPOST -vu admin:password http://localhost:8082/artifactory/ui/jcr/eula/accept
8:35
docker login localhost:8081/docker/test
Username: admin
Password:
Login Succeeded
首先,让我们通过运行下面的 curl 来测试 docker 客户端是否可以到达 JCR,
curl -u http://localhost:8082/artifactory/api/docker/docker/v2/token
此外,看起来 docker 客户端没有将 localhost 作为 docker 容器的 IP,而是服务器的主机,要检查这一点,请在 /etc/hosts 文件中添加以下行,
127.0.0.1 我的人工制品
然后通过 UI 使用 myartifactory:8082 访问它,如果可以访问,则使用 docker login 作为“docker login myartifactory:8082”
因为每个repo可以有不同的认证或授权,所以你需要登录到特定的repo。
假设您创建了一个docker repo“myrepo”,您可以按如下方式登录
docker 登录 localhost:8082/myrepo