Docker Registry 2.0 启用 CORS
Posted
技术标签:
【中文标题】Docker Registry 2.0 启用 CORS【英文标题】:Docker Registry 2.0 enable CORS 【发布时间】:2015-07-21 17:53:51 【问题描述】:对于一个项目,我需要通过 AJAX 请求与 privat Docker Registry 通信,但由于“同源规则”而出现错误,我应该启用 CORS。 我设法在启用了 CORS 的情况下启动了 Docker Remote API(标志:--api-enable-cors)是否有任何等效的方法可以使用私有注册表来执行此操作? 还是在启动私有注册表时启用 CORS 的另一种方法? [编辑:仅供参考 - 注册表和提到的远程 API 位于不同的机器上]
要设置私有注册表,我遵循了官方文档的步骤: https://docs.docker.com/registry/deploying/ 我正在使用 Compose 版本,在注册表版本 1.0 和 2.0 之间切换...
我是 Web 实现方面的菜鸟,但它对我的项目来说是必要的。 提前感谢您的帮助和对糟糕的英语表示抱歉:)
【问题讨论】:
【参考方案1】:不,很遗憾,截至本问答,v2 注册表不支持任何 CORS 选项。 v2 注册表是用完全不同的语言(Go 与 v1 的 Python)编写的全新项目,因此 v1 可用的许多功能尚未在 v2 中实现。实际上,您使用的标志 (--api-enable-cors
) 是目前仅在 docker 远程 API 中可用的功能,在 v2 注册表中不可用。
我绕过 v2(当前)有限的注册表 API 的方法是使用 Jason Wilder's nginx reverse proxy for docker,它使用他自己开发的 docker-gen 实用程序来代理 docker 容器。这样做会打开一堆“标准”功能,例如身份验证、CORS、SSL 等。尽管目前此功能尚未在 v2 注册表中实现,但请记住,开发进展非常迅速。祝你好运!
【讨论】:
我知道,我在远程api上使用了flag,只是想知道注册表是否有任何等价物:)谢谢你的回答,我看看你的nginx代理提到了!以上是关于Docker Registry 2.0 启用 CORS的主要内容,如果未能解决你的问题,请参考以下文章