OFFICIAL REPOUpdated 2 days, 10 hours ago


Containerized docker registry

Supported tags and respective Dockerfile links

For more information about this image and its history, please see the relevant manifest file (library/registry) in the docker-library/official-images GitHub repo.

Docker Registry

See comprehensive documentation on our GitHub page.

Run the Registry

Recommended: run the registry docker container


docker run \
         -e SETTINGS_FLAVOR=s3 \
         -e AWS_BUCKET=acme-docker \
         -e STORAGE_PATH=/registry \
         -e AWS_KEY=AKIAHSHB43HS3J92MXZ \
         -e AWS_SECRET=xdDowwlK7TJajV1Y7EoOZrmuPEJlHYcNP2k4j49T \
         -e SEARCH_BACKEND=sqlalchemy \
         -p 5000:5000 \

NOTE: The container will try to allocate the port 5000. If the port is already taken, find out which container is already using it by running docker ps.

Supported Docker versions

This image is officially supported on Docker version 1.5.0.

Support for older versions (down to 1.0) is provided on a best-effort basis.

User Feedback


If you have any problems with or questions about this image, please contact us through a GitHub issue.

You can also reach many of the official image maintainers via the #docker-library IRC channel on Freenode.


You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.

Before you start to code, we recommend discussing your plans through a GitHub issue, especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.


3 months ago
profile picturesalamandra

Same problem here. The easy way to fix it is reverting to 0.8.0 :/

3 months, 2 weeks ago
profile picturepmoosh

Just a note on the preload GUNICORN_OPTS=[--preload] option. It doesn't look like you can use it when running on S3, as it causes other problems.

3 months, 3 weeks ago
profile picturelorenwest

Thank you @blinkylights23, my co-workers are laughing at me because I'm the docker proponent within our company, and getting the latest registry running has been a multi-day project due to O/S incompatibilities, and silly configuration issues like GUNICORN_OPTS, which is exactly the thing that Docker is designed to prevent.

4 months ago
profile pictureblinkylights23

Sounds like the weird 'OperationalError:…' issue is being caused by each of the gunicorn workers racing to create a database for sqlalchemy. I got this error too, but then managed to launch a container with:

docker -e GUNICORN_OPTS=[--preload] run -p 5000:5000 registry

Better explanation:

4 months ago
profile picturemarcellodesales

@hjacobs, @kevinwangcy: Is the Database problem already fixed?

4 months ago
profile picturehenningsprang

Didnd't analyze the exact cause, but a hint:

I also had the “OperationalError:…” message before, when running “docker run -p 5000:5000 registry” directly.

Wondering why it happend on one machine, but not on the other, I realized that it didn't occur when i did an explicit “docker pull registry” before.

That seems to prevent the error, even though pretty unclear how and why that can be.

4 months ago
profile picturekevinwangcy

I also got this error, how can I fix it?

4 months, 1 week ago
profile picturehjacobs

Latest version fails (locally and on AWS), error is (as already reported by vgadang):

OperationalError: (OperationalError) table version already exists u'\nCREATE TABLE version (\n\tid INTEGER NOT NULL, \n\tPRIMARY KEY (id)\n)\n\n' ()
4 months, 1 week ago
profile picturevgadang

Any idea on how to fix this error?

2014-11-17 19:02:06 [13] [ERROR] Exception in worker process: Traceback (most recent call last): File “/usr/local/lib/python2.7/dist-packages/gunicorn/”, line 507, in spawn_worker worker.init_process() File “/usr/local/lib/python2.7/dist-packages/gunicorn/workers/”, line 193, in init_process super(GeventWorker, self).init_process() … … … File “/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/”, line 435, in do_execute cursor.execute(statement, parameters)

OperationalError: (OperationalError) table version already exists u'\nCREATE TABLE version (\n\tid INTEGER NOT NULL, \n\tPRIMARY KEY (id)\n)\n\n' ()

4 months, 2 weeks ago
profile picturetompson

where is the 0.9.0 image? it was released yesterday

4 months, 3 weeks ago
profile pictureimmanuel

How to view the list of images pushed inside the registry ????

7 months, 2 weeks ago
profile picturehbokh

@jjneely: Nope… can not be reproduced:

<code>core@localhost ~ $ sudo nsenter -t 3988 –mount –uts –ipc –net –pid /bin/bash groups: cannot find name for group ID 11 root@71f544be5723:/# </code>

8 months, 2 weeks ago
profile picturejjneely

Running the 0.7.3 image, there seems to be something strange with the libraries inside the running container that prevents nsenter from creating a bash process:

nsenter –target 21011 –mount –uts –ipc –net –pid /bin/bash

/bin/bash: error while loading shared libraries: /lib/x86_64-linux-gnu/ invalid ELF header

Can anyone reproduce?

8 months, 3 weeks ago
profile picturejoffrey

You guys probably have noticed, but 0.7.1, 0.7.2 and 0.7.3 have been there for a week or so already =) Just wanted to clarify for people who just arrived!

@lemonbar, you'll want to look at enabling the indexing module and using the /v1/search endpoint. HTH!

9 months, 1 week ago
profile picturelemonbar

How to search images in the own registry we started?

9 months, 1 week ago
profile picturerojaro

Please update this image … you've skipped 0.7.1 already so please upload 0.7.2

9 months, 2 weeks ago
profile picturetopicusonderwijs

Yes, please, 0.7.1 :D

9 months, 3 weeks ago
profile picturetclavier

It's possible to build last tag 0.7.1 ?