Docker官方注册表(Docker Hub)URL

Ert*_*oğa 35 docker dockerhub

泊坞中心官方网站已移到https://registry.hub.docker.comhttps://hub.docker.com/.

如果我尝试docker pull从URL中的图像:docker pull registry.hub.docker.com/busybox它显示:

registry.hub.docker.com/busybox: this image was pulled from a legacy registry.  
Important: This registry version will not be supported in future versions of docker.
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用docker pull registry.hub.docker.com/busybox.

它无法拉动图像.

使用时的情况相同 curl -k https://registry.hub.docker.com/v1/repositories/busybox/tags

kon*_*rad 58

官方图像的注册表路径(名称中没有斜杠)是library/<image>.试试这个:

docker pull registry.hub.docker.com/library/busybox
Run Code Online (Sandbox Code Playgroud)

  • 我认为使用 `docker.io` 而不是 `registry.hub.docker.com`、`index.docker.io` 等是最安全的,因为它是最通用的别名。[registry docs](https://docs.docker.com/registry/introduction/) 说“`docker pull ubuntu` ...只是较长的 `docker pull docker.io/library/ubuntu` 命令的快捷方式” (15认同)
  • 个人形象的任何想法?我的意思是<user>/<image>容器,任何有关完整网址的帮助? (6认同)
  • 使用的 URL 是 `docker pull index.docker.io/library/busybox` (4认同)
  • @JoséIbañez,你试过 `docker pull registry.hub.docker.com/&lt;user&gt;/&lt;image&gt;` 吗? (2认同)
  • @wisbucky 天哪,天哪,谢谢你。我的天哪,为什么发现这个这么可笑。 (2认同)

nso*_*sof 17

对于那些尝试使用“将容器映像部署到此VM实例”来创建Google Cloud实例的用户。选项,则正确的网址格式为

docker.io/<dockerimagename>:version

上面的建议registry.hub.docker.com/library/<dockerimagename>对我没有用。

我终于在这里找到了解决方案(就我而言,我试图运行docker.io/tensorflow/serving:latest)

  • 我同意“docker.io”似乎是最安全的网址(将来最不可能改变/破坏)。[registry docs](https://docs.docker.com/registry/introduction/) 说“docker pull ubuntu ...只是较长的 docker pull docker.io/library/ubuntu 命令的快捷方式”。 (6认同)

小智 9

在创建 dockerhub kubernetes secret 时,我在搜索 dockerhub repo URL 时遇到了这篇文章。我认为 id 共享 URL 已成功使用,希望没问题。

当前直播https : //index.docker.io/v2/

死亡 原版:https : //index.docker.io/v1/


Flo*_*sch 9

您可以使用来获取当前的注册表URL docker info

...
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
...
Run Code Online (Sandbox Code Playgroud)

这也是您可以用来运行自托管注册表的URL:

docker run -d -p 5000:5000 --name registry -e REGISTRY_PROXY_REMOTEURL=https://index.docker.io registry:2
Run Code Online (Sandbox Code Playgroud)

Grep并立即使用:

$ echo $(docker info | grep -oP "(?<=Registry: ).*")
https://index.docker.io/v1/
Run Code Online (Sandbox Code Playgroud)

  • 鉴于注册表 URL 将来可能会更改,使用 `docker info` 似乎是最安全的方法。 (3认同)

x-y*_*uri 8

tl;dr registry-1.docker.io用于 API 请求,docker.io用于docker pull

情况很棘手,并且有计划在未来解决这个问题。我在这里知道 3 个相关领域:

  • index.docker.io遗产?)
  • docker.io
  • registry-1.docker.io

您可以将其中任何一个与以下内容一起使用docker pull

  • docker pull index.docker.io/library/alpine
  • docker pull docker.io/library/alpine
  • docker pull registry-1.docker.io/library/alpine

index.docker.iodocker.io的处理方式与(前者被后者替换)相同。

在所有三种情况下registry-1.docker.io都用于连接到注册表。在前 2 种情况下,这是默认注册表URL。在第三种情况下,按原样registry-1.docker.io处理。

然后,要使用注册表 API,您可以使用index.docker.ioand registry-1.docker.iodocker.io不起作用)。例如:

$ curl -sSv https://registry-1.docker.io/v2/
Run Code Online (Sandbox Code Playgroud)

此外,显然这些领域将来也会发生变化。

docker.io最常在 的上下文中使用docker pullindex.docker.io似乎回到了 Docker Hub被称为Docker Index 的时代,以及索引服务器(搜索图像)的概念。实际上,这可能是该域的主要目的:

https://index.docker.io/v1/search/

搜索不是 docker 注册表规范的一部分。或者它的泛化/后继者(?)称为OCI Distribution Spec


boo*_*yaa 1

只是docker pull busybox,您使用的是最新版本的docker客户端吗?我认为他们停止支持低于 1.5 的客户端。

顺便说一句,curl 对我有用:

$ curl -k https://registry.hub.docker.com/v1/repositories/busybox/tags
[{"layer": "fc0db02f", "name": "latest"}, {"layer": "fc0db02f", "name": "1"}, {"layer": "a6dbc8d6", "name": "1-ubuntu"}, {"layer": "a6dbc8d6", "name": "1.21-ubuntu"}, {"layer": "a6dbc8d6", "name": "1.21.0-ubuntu"}, {"layer": "d7057cb0", "name": "1.23"}, {"layer": "d7057cb0", "name": "1.23.2"}, {"layer": "fc0db02f", "name": "1.24"}, {"layer": "3d5bcd78", "name": "1.24.0"}, {"layer": "fc0db02f", "name": "1.24.1"}, {"layer": "1c677c87", "name": "buildroot-2013.08.1"}, {"layer": "0f864637", "name": "buildroot-2014.02"}, {"layer": "a6dbc8d6", "name": "ubuntu"}, {"layer": "ff8f955d", "name": "ubuntu-12.04"}, {"layer": "633fcd11", "name": "ubuntu-14.04"}]
Run Code Online (Sandbox Code Playgroud)

有趣的是,如果您嗅探标头,您会得到 HTTP 405(方法不允许)。我认为这可能与 Docker 已弃用其Registry API有关。