Jas*_*oss 2 c# asp.net-web-api azure-container-registry
我b着脑袋试图找出如何以编程方式在Azure容器注册表中获取图像列表的方法。
一切似乎都归结于Docker.DotNet自己的图像列表的本地实例化,以及通过该本地存储库推/拉到ACR的过程-但是没有任何东西向我展示如何从容器中获取图像列表(及其标签)。 ACR本身。在探究他们其余的API以获得天蓝色时,似乎只有少量的“管理”选项可用(获取ACR列表,获取ACR的属性,但没有什么比这更深入了)。
我可以通过Azure CLI获取图像名称列表,然后获得其图像名称标签- 但我希望在C#应用程序中(实际上是在Web-api中)获得可枚举的图像列表。
本质上,我想做的是在docker中远程运行图像列表,并将其与ACR中的图像进行比较,以给出“嘿,此图像有更新版本”。
有人这样做吗?有什么作用吗?
这样简单吗(对于Docker):
var _credentials = new BasicAuthCredentials("MY_REG_USERNAME", "MY_REG_PASSWORD");
var _config = new DockerClientConfiguration(new Uri("MY_REGISTRY_NAME.azurecr.io"), _credentials);
DockerClient _client = _config.CreateClient();
var myList = await _client.Images.ListImagesAsync(
new Docker.DotNet.Models.ImagesListParameters() { All = true }
);
Run Code Online (Sandbox Code Playgroud)
还是不可能?
我已经用DeviceClient弄乱了IoT中心并获得了设备孪生列表等信息-ACR上没有这样的东西吗?
小智 5
我有一段时间面对同样的难题,答案是:
对于映像操作(包括您询问的标签列表),Microsoft支持docker Registry API v2。
https://docs.docker.com/registry/spec/api
这是什么意思?一个例子:
Azure REST API仅适用于Azure资源操作。在那里,您可以使用Bearer Token身份验证,例如发出GET请求,如下所示:
但是您已经知道,这将使您无法访问有关ACR内容的操作。
相反,您需要调用另一个端点,即注册表端点,非常重要的是,您需要使用带有用户名和密码的基本身份验证:
https://yourregistryname-on.azurecr.io/v2/imagename/tags/list
什么是用户名和密码?好吧,可能有两种类型:
| 归档时间: |
|
| 查看次数: |
2359 次 |
| 最近记录: |