通配符使用星号 (*) 来匹配容器映像注册表中的多个路径。 本文列出了 Azure 容器注册表(ACR) 项目缓存功能 支持的通配符。
注释
缓存规则从 target repository
=>source repository
进行映射。
注册表级别通配符
注册表级别通配符允许缓存上游注册表中的所有存储库。
缓存规则 | 映射 | 示例: |
---|---|---|
contoso.azurecr.cn/* =>mcr.microsoft.com/* |
将 ACR 下的所有映像映射到 MCR。 |
contoso.azurecr.cn/myapp/image1 = =>mcr.microsoft.com/myapp/image1<br>contoso.azurecr.cn/myapp/image2 >mcr.microsoft.com/myapp/image2 |
存储库级别通配符
通过存储库级别通配符,可以缓存上游注册表中与存储库前缀对应的所有存储库。
缓存规则 | 映射 | 示例: |
---|---|---|
contoso.azurecr.cn/dotnet/* =>mcr.microsoft.com/dotnet/* |
将 ACR 下的特定存储库映射到 MCR 中的相应存储库。 |
contoso.azurecr.cn/dotnet/sdk =>mcr.microsoft.com/dotnet/sdk contoso.azurecr.cn/dotnet/runtime =>mcr.microsoft.com/dotnet/runtime |
contoso.azurecr.cn/library/dotnet/* =>mcr.microsoft.com/dotnet/* contoso.azurecr.cn/library/python/* =>docker.io/library/python/ * |
将 ACR 下的特定存储库映射到来自不同上游注册表的存储库。 |
contoso.azurecr.cn/library/dotnet/app1 =>mcr.microsoft.com/dotnet/app1 contoso.azurecr.cn/library/python/app3 =>docker.io/library/python/app3 |
基于通配符的缓存规则的限制
通配符缓存规则使用星号 (*) 来匹配容器映像注册表中的多个路径。 这些规则不能与其他通配符缓存规则重叠,不能用于同一存储库路径,也不能用于多个路径中一个包含另一个的情况。 换句话说,如果你有特定注册表路径的通配符缓存规则,则不能添加与它重叠的另一个通配符规则。
下面是重叠规则的一些示例:
示例 1:
现有缓存规则:contoso.azurecr.cn/* => mcr.microsoft.com/*
新建缓存规则: contoso.azurecr.cn/library/* => docker.io/library/*
由于目标存储库路径 contoso.azurecr.cn/library/*
与现有通配符规则 contoso.azurecr.cn/*
重叠,因此系统会阻止添加新的缓存规则。
示例 2:
现有缓存规则:contoso.azurecr.cn/library/*
=>mcr.microsoft.com/library/*
新建缓存规则: contoso.azurecr.cn/library/dotnet/*
=>docker.io/library/dotnet/*
示例 3:
现有缓存规则:contoso.azurecr.cn/* => mcr.microsoft.com/*
新建缓存规则: contoso.azurecr.cn/* => dockerhub.io/library/*
由于两个规则使用相同的目标存储库路径 contoso.azurecr.cn/*
,因此阻止了新缓存规则的添加。
由于目标存储库路径 contoso.azurecr.cn/library/dotnet/*
与现有通配符规则 contoso.azurecr.cn/library/*
重叠,因此系统会阻止添加新的缓存规则。
静态/固定缓存规则的限制
静态或固定缓存规则更具体,不使用通配符。 它们可能会与基于通配符的缓存规则重叠。 如果缓存规则指定固定存储库路径,则允许与基于通配符的缓存规则重叠。 但是,不能创建指向同一确切存储库路径的多个静态规则。
示例 1:
现有缓存规则:contoso.azurecr.cn/*
=>mcr.microsoft.com/*
新建缓存规则: contoso.azurecr.cn/library/dotnet
=>docker.io/library/dotnet
允许添加新的缓存规则,因为 contoso.azurecr.cn/library/dotnet
是静态路径,可以与通配符缓存规则 contoso.azurecr.cn/*
重叠。
示例 2:
现有缓存规则:contoso.azurecr.cn => mcr.microsoft.com/*
新建缓存规则: contoso.azurecr.cn => dockerhub.io/library/*
由于两个规则使用相同的目标存储库路径 contoso.azurecr.cn
,因此阻止了新缓存规则的添加。