2015-06-08 02:58:53 +02:00
<!-- [metadata]>
+++
2016-01-28 13:57:31 +01:00
title = "Registry"
2015-08-26 20:08:13 +02:00
description = "High-level overview of the Registry"
keywords = ["registry, on-prem, images, tags, repository, distribution"]
2015-06-08 02:58:53 +02:00
[menu.main]
2016-01-28 13:57:31 +01:00
identifier="smn_registry"
parent="mn_components"
2015-06-08 02:58:53 +02:00
+++
<![end-metadata]-->
2015-05-13 09:32:14 +02:00
# Docker Registry
2015-03-03 08:33:02 +01:00
2015-05-22 11:17:23 +02:00
## What it is
2015-04-02 17:11:19 +02:00
2015-05-22 11:17:23 +02:00
The Registry is a stateless, highly scalable server side application that stores and lets you distribute Docker images.
The Registry is open-source, under the permissive [Apache license ](http://en.wikipedia.org/wiki/Apache_License ).
2015-04-02 17:11:19 +02:00
2015-05-22 11:17:23 +02:00
## Why use it
2015-04-02 17:11:19 +02:00
2015-05-22 11:17:23 +02:00
You should use the Registry if you want to:
2015-04-02 17:11:19 +02:00
2015-05-22 11:17:23 +02:00
* tightly control where your images are being stored
* fully own your images distribution pipeline
2015-06-12 10:10:03 +02:00
* integrate image storage and distribution tightly into your in-house development workflow
2015-04-02 17:11:19 +02:00
2015-05-22 11:17:23 +02:00
## Alternatives
2015-04-16 02:23:40 +02:00
2015-05-22 11:17:23 +02:00
Users looking for a zero maintenance, ready-to-go solution are encouraged to head-over to the [Docker Hub ](https://hub.docker.com ), which provides a free-to-use, hosted Registry, plus additional features (organization accounts, automated builds, and more).
2015-04-02 17:11:19 +02:00
2015-07-08 23:05:49 +02:00
Users looking for a commercially supported version of the Registry should look into [Docker Trusted Registry ](https://docs.docker.com/docker-trusted-registry/ ).
2015-04-02 17:11:19 +02:00
2015-05-22 11:17:23 +02:00
## Requirements
2015-04-16 02:23:40 +02:00
2015-06-01 05:08:28 +02:00
The Registry is compatible with Docker engine **version 1.6.0 or higher** .
2015-08-26 20:08:13 +02:00
If you really need to work with older Docker versions, you should look into the [old python registry ](https://github.com/docker/docker-registry ).
2015-04-16 02:23:40 +02:00
2015-05-22 11:17:23 +02:00
## TL;DR
2015-04-16 02:23:40 +02:00
2015-06-12 10:10:03 +02:00
Start your registry
docker run -d -p 5000:5000 --name registry registry:2
Pull (or build) some image from the hub
docker pull ubuntu
Tag the image so that it points to your registry
2015-04-16 02:23:40 +02:00
2015-06-12 10:10:03 +02:00
docker tag ubuntu localhost:5000/myfirstimage
2015-04-16 02:23:40 +02:00
2015-06-12 10:10:03 +02:00
Push it
2015-04-16 02:23:40 +02:00
2015-06-12 10:10:03 +02:00
docker push localhost:5000/myfirstimage
2015-04-16 02:23:40 +02:00
2015-06-12 10:10:03 +02:00
Pull it back
2015-04-16 02:23:40 +02:00
2015-06-12 10:10:03 +02:00
docker pull localhost:5000/myfirstimage
2015-05-13 09:32:14 +02:00
2015-06-12 10:10:03 +02:00
Now stop your registry and remove all data
2015-05-13 09:32:14 +02:00
2015-06-12 10:10:03 +02:00
docker stop registry & & docker rm -v registry
2015-05-22 11:17:23 +02:00
2015-06-12 10:10:03 +02:00
## Next
2015-05-22 11:17:23 +02:00
2015-06-12 10:10:03 +02:00
You should now read the [detailed introduction about the registry ](introduction.md ), or jump directly to [deployment instructions ](deploying.md ).