Hosting you private docker repo

We are staring using docker in our developing process. and in that we need to have our own docker repo for hosting our private docker.

The path is

[public docker cloud(centos img)] –public docker image- > [jenkins build our code and docker img] —> our docker images —> [private docker repo]–our docker image->[Servers [int,qa,prod]

 

1. Setting up the docker imaged for the docker repo

make a folder that will hold you data

mkdir /docker_repo

Start the docker registry

docker run -p 5000:5000 -e STORAGE_PATH=/docker_repo registry

To have it running in the background

docker run -d -p 5000:5000 -e STORAGE_PATH=/docker_repo registry

 

2. Making apache proxy to docker use https else docker will not push image

here is link for setting up tls with apache http://wiki.centos.org/HowTos/Https

<VirtualHost *:443>
 ServerName docker.xxxxx.net
 ServerAlias docker.xxxx.net
 DocumentRoot /var/www/html
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
 
SSLEngine on
 SSLProtocol -all +TLSv1
 #NEW ENTORY
 SSLHonorCipherOrder On
 SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH


 SSLCertificateFile /etc/httpd/ssl/wild.xxxxx.net.crt
 SSLCertificateKeyFile /etc/httpd/ssl/wild.xxxxx.net.key
 SSLCertificateChainFile /etc/httpd/ssl/ca/geotrust-ca.pem

</VirtualHost>

 

 

Now you should be able to see the “docker registry service” if you go to the doman docker.xxxxx.net.

 

3. Adding images

 

Download a image

[root@test mahe]# docker pull centos
Pulling repository centos
dade6cb4530a: Download complete 
511136ea3c5a: Download complete 
5b12ef8fd570: Download complete 
Status: Downloaded newer image for centos:latest

Show images

[root@test mahe]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos 7 dade6cb4530a 4 days ago 224 MB
centos centos7 dade6cb4530a 4 days ago 224 MB
centos latest dade6cb4530a 4 days ago 224 MB

Tag the images

docker tag dade6cb4530a docker.xxxxx.net/centos:latest

Show the images

[root@test mahe]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos 7 dade6cb4530a 4 days ago 224 MB
centos centos7 dade6cb4530a 4 days ago 224 MB
centos latest dade6cb4530a 4 days ago 224 MB
docker.xxxxx.net/centos latest dade6cb4530a 4 days ago 224 MB

push the images to our private repo

 

[root@test sysconfig]#docker push docker.xxxxx.net/centos
The push refers to a repository [docker.xxxxx.net/centos] (len: 1)
Sending image list
Pushing repository docker.xxxxx.net/centos (1 tags)
511136ea3c5a: Image successfully pushed 
5b12ef8fd570: Image successfully pushed 
dade6cb4530a: Image successfully pushed 
Pushing tag for rev [dade6cb4530a] on {https://docker.xxxxx.net/v1/repositories/centos/tags/latest}

 

And now you have the image in your own repo and ready .

  1 comment for “Hosting you private docker repo

  1. March 19, 2015 at 7:42 pm

    Hi and thanks for this article.
    I had a strange error before reading your post :

    511136ea3c5a: Pushing
    FATA[0000] Failed to upload metadata: Put https://localhost:5000/v1/images/511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158/json: dial tcp 127.0.0.1:5000: connection refused

    My Apache reverse proxy was configured with ssl, certifcates and everything, and proxying to localhost:5000.

    I just didn’t add this part :

    SSLProtocol -all +TLSv1
    #NEW ENTORY
    SSLHonorCipherOrder On
    SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH

    Thanks a lot !!!!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: