Azure naming · Microsoft.ContainerRegistry/registries

cr Container registry

Azure Container Registry. The login server is <name>.azurecr.io.

Naming constraints

CAF abbreviationcr
Resource typeMicrosoft.ContainerRegistry/registries
Length5–50 characters
CaseMixed case
Allowed charactersAlphanumerics only. No hyphens or underscores.
Uniqueness Global
SeparatorNone (no separators allowed)
Watch out: Globally unique and no separators at all, so the tokens run together. The login server is always lowercase, so use lowercase names to avoid confusion.

Source: Microsoft Learn, “Naming rules and restrictions for Azure resources”, checked October 2026. Abbreviation from the Cloud Adoption Framework.

Example & copy-ready

A worked name for workload app, env prod, region weu, instance 001.

Example name
crappprodweu001 Valid
Validation regex for CI checks or pre-commit hooks (.NET and JavaScript)
^[A-Za-z0-9]{5,50}$
Bicep naming expression
var name = take('cr${workload}${env}${region}${instance}', 50)
Terraform local
locals {
  name = substr(join("", compact(["cr", var.workload, var.env, var.region, var.instance])), 0, 50)
}

Azure Policy can't evaluate regular expressions, so a policy can check the cr prefix but not the full format. Run the regex in your pipeline, or audit existing names on a schedule.

Uniqueness scope

Globally unique across all of Azure — the name backs a public DNS label, so a clash with any other tenant's resource fails the deployment. Build in enough entropy (org/region/instance) to avoid collisions.

Open in the name generator