【问题标题】:Invalid repository name while pulling an image in docker在 docker 中拉取图像时存储库名称无效
【发布时间】:2014-11-13 02:48:48
【问题描述】:

github 上的存储库所有者与我共享了以下存储库 (mxtsit/myswitchXSS),与他之前共享的几个存储库不同,它没有显示在 docker hub 上。

尽管存储库名称正确,但我收到以下错误:

docker@boot2docker:~$ docker pull mxtsit/myswitchXSS
2014/11/12 17:53:43 Invalid repository name (myswitchXSS), only [a-z0-9-_.] are allowed

我怀疑 docker 无法识别错误中提到的任何大写字母 描述only [a-z0-9-_.] are allowed,如果我错了,请纠正我。我想知道是否有任何官方文档可以讨论 docker 上的有效存储库名称?

在最近的过去,我提取的任何存储库都是小写的,并且有. 符号。有什么办法可以克服这个问题吗?此外,我无法在 Dockerhub 上找到存储库,这与以前的存储库不同,理想情况下应该在那里,因为我可以在我的 github 帐户上看到它。

【问题讨论】:

    标签: docker dockerhub


    【解决方案1】:

    你可能是对的。我还没有看到大写的存储库。

    试试这个:

    $ sudo docker pull https://<registry>/repositories/mxtsit/myswitchXSS
    

    在这种情况下,Docker 绕过了 Docker Hub。但是,由于不会进行任何校验和检查,因此无法保证安全性。

    目前注册表重定向到 s3 url 以进行下载,今后所有下载都需要通过注册表进行流式传输。 Registry 将通过一个顶层类抽象对 S3 的调用,该类实现 S3 和本地存储的子类。

    仅当 X-Docker-Token 标头随请求一起发送时才会返回。

    需要基本身份验证才能提取私有存储库。拉取公共回购不需要基本身份验证,但如果提供,则必须是有效的并且对于活动帐户。

    【讨论】:

    • 好的,谢谢。通过使用 https://&lt;registry&gt;/repositories/mxtsit/myswitchXSS ,您的意思是说我应该使用 github.com 代替 &lt;registry&gt; 还是应该直接使用我用来访问 github 上的存储库的 URL https://github.com/mxtsit/myswitchXSS?请说清楚。因为当我使用 `sudo docker pull https://github.com/mxtsit/myswitchXSS 时,我得到以下 2014/11/12 19:30:25 Invalid repository name (ex: "registry.domain.tld/myrepos")
    • 可能需要认证才能拉取,因为这个仓库不是公开的。
    • 存储库不是公开的。但是,由于仓库的所有者已经在 github 上与我共享了仓库,您不认为我已经拥有相同的身份验证吗?如果您在谈论其他类型的身份验证,请告诉我。
    • 最好的解决方案是将存储库的名称更改为小写。
    • 嗯,我想知道为什么有人不赞成这个答案?有什么问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 2021-09-28
    • 2020-07-05
    • 2021-06-03
    相关资源
    最近更新 更多