ECR - What is the registry and what is a repository

15.5k views Asked by At

Trying to familiarize myself with ECR - i understand that you should be able to push as many repositories as you like to Docker registry.

However, ECR has a concept of a 'repository'. So if i have 10 different containers comprising my app, does it mean i need 10 repositories in a registry?

Can i have one repository and push 10 different containers with their 'latest' tags?

Currently if i tag another image with the same {registry}/{repository_name} pattern, it replaces latest tag on my other image:

ECR overview

1

There are 1 answers

3
Jamie Starke On BEST ANSWER

If you want to get the detailed descriptions, I would check out the What Is Amazon EC2 Container Registry? page, which describes the components in detail, but the high level difference between the two is this: Each account has a Registry, each Registry can contain several repositories. Each Repository can contain several Images. An image can have Several Tags, a Tag can only exist once per Repository.

If you look at the reference to a repository:

[account].dkr.ecr.[region].amazonaws.com/[repository_name]

The part in front of the first / is your registry, the part after the first / is your repository.

So what you're experiencing here is that by pushing a second image to the same repository, you're changing the reference that the latest tag is pointing to.

If you want to have multiple distinct images, each with their own latest tag, each one should have it's own Repository. Based on the Pricing for ECR, you only pay based on the storage size and transfer from an ECR Repo, so there's little benefit to not creating additional repos.