Hosting you private docker repo

2 minute read

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 .