Scaling out the docker registry

I am looking to scale out a local stand-alone docker-registry for both HA and performance reasons.

A few questions:

  • can multiple containers point to the same S3 back-end
  • I assume the Redis cache can be the same for all containers?
  • how might search be affected?

Has anyone else done this?

Thanks for any pointers.

Kind regards,

Matt.

After some research I’ve come up with the following plan:

Use Amazon Auto Scaling Groups to provision multiple Docker Registries via Docker then:

  • use a common S3 backend across the containers
  • use a common Elasticache (Redis) server across the containers
  • use a common RDS(mysql) SQLAlchemy end-point

The question is: is this sensible? Is it designed to work this way?

Many thanks for any pointers,

Matt.

2 Likes

How did this work out for you?

Hi,

It worked out well :slight_smile:

I submitted a patch to the docs and got some dependencies (the python
mysql drivers) installed in the main docker image.

See here:

Hope that helps,

Matt

Anyone has experience with scaling V2 registry in similar setup (using S3 backend)?

Hi @akerekes, @mattford63

I am trying to make a similar setup (Two registry v2.3.1 containers both pointing to the same S3 backend) work, but when I try to pull an image on the second registry - with an image previously pushed by the first registry to S3 - I get an error specifying that the image could not be found.

Please can you share your other_args/DOCKER_OPTS and also how are you tagging the image during push/pull to S3?

Thanks
Aravind

By the way, would it make sense to instead of using S3, use docker registry with a shared filesystem like EFS? Thanks!