2015-06-07 17:58:53 -07:00
<!-- [metadata]>
+++
title = "Docker Registry 2.0"
description = "Introduces the Docker Registry"
2015-06-12 01:10:03 -07:00
keywords = ["registry, images, repository"]
2015-06-07 17:58:53 -07:00
[menu.main]
parent="smn_registry"
+++
<![end-metadata]-->
2015-05-13 00:32:14 -07:00
# Docker Registry
2015-03-02 23:33:02 -08:00
2015-05-22 02:17:23 -07:00
## What it is
2015-04-02 08:11:19 -07:00
2015-05-22 02:17:23 -07: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 08:11:19 -07:00
2015-05-22 02:17:23 -07:00
## Why use it
2015-04-02 08:11:19 -07:00
2015-05-22 02:17:23 -07:00
You should use the Registry if you want to:
2015-04-02 08:11:19 -07:00
2015-05-22 02:17:23 -07:00
* tightly control where your images are being stored
* fully own your images distribution pipeline
2015-06-12 01:10:03 -07:00
* integrate image storage and distribution tightly into your in-house development workflow
2015-04-02 08:11:19 -07:00
2015-05-22 02:17:23 -07:00
## Alternatives
2015-04-15 17:23:40 -07:00
2015-05-22 02:17:23 -07: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 08:11:19 -07:00
2015-07-08 14:05:49 -07: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 08:11:19 -07:00
2015-05-22 02:17:23 -07:00
## Requirements
2015-04-15 17:23:40 -07:00
2015-05-31 20:08:28 -07:00
The Registry is compatible with Docker engine **version 1.6.0 or higher** .
2015-05-22 02:17:23 -07: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-15 17:23:40 -07:00
2015-05-22 02:17:23 -07:00
## TL;DR
2015-04-15 17:23:40 -07:00
2015-06-12 01:10:03 -07: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-15 17:23:40 -07:00
2015-06-12 01:10:03 -07:00
docker tag ubuntu localhost:5000/myfirstimage
2015-04-15 17:23:40 -07:00
2015-06-12 01:10:03 -07:00
Push it
2015-04-15 17:23:40 -07:00
2015-06-12 01:10:03 -07:00
docker push localhost:5000/myfirstimage
2015-04-15 17:23:40 -07:00
2015-06-12 01:10:03 -07:00
Pull it back
2015-04-15 17:23:40 -07:00
2015-06-12 01:10:03 -07:00
docker pull localhost:5000/myfirstimage
2015-05-13 00:32:14 -07:00
2015-06-12 01:10:03 -07:00
Now stop your registry and remove all data
2015-05-13 00:32:14 -07:00
2015-06-12 01:10:03 -07:00
docker stop registry & & docker rm -v registry
2015-05-22 02:17:23 -07:00
2015-06-12 01:10:03 -07:00
## Next
2015-05-22 02:17:23 -07:00
2015-06-12 01:10:03 -07:00
You should now read the [detailed introduction about the registry ](introduction.md ), or jump directly to [deployment instructions ](deploying.md ).
2015-05-31 20:08:28 -07:00