Bueno como sigo escribiendo cuando puedo, voy avanzando con el tema del docker

Hoy me gustaria enseñaros como se crea un repositorio privado para guardar nuestras imagenes de contenedores echas con docker.

Primero lo que tenemos que hacer el bajarnos el proyecto de docker registry , esto nos permitira montarnos nuestro propio repostorio para ello hacemos el siguiente comando

docker pull registry:latest

Una vez tenemos bajado el projecto vamos a seguir bajando las cosas que necesitamos esta vez sera una interface grafica echa en python con gnunicorn la podeis bajar de aqui

https://github.com/atc-/docker-registry-web

Os haceis un clone del projecto y compilais la imagen ya que trae su propio Dockerfile de la siguiente manera.

docker build -t='registry_ui' .

Esto nos compilara la imagen pues con esto ya esta todo ahora iremos lanzando los contenedores uno a uno empezamos por el registry.

docker run -d -t --name registry -p 5000:5000 -v /opt/repo:/registry -e SETTINGS_FLAVOR=local -e STORAGE_PATH=/registry -e SEARCH_BACKEND=sqlalchemy -e SQLALCHEMY_INDEX_DATABASE:sqlite:////registry/database/docker-registry.db registry

Comento las opciones
-p nos mapeamos el puerto donde escucha el registry por defecto 5000
--name es el nombre que utilizaremos para luego hacer el link
-v montamos una carpeta en local /opt/repo (maquina anfitrion) a /resgitry (contenedor)
-e SETTINGS_FLAVOR=local tipo de configuracion del resgitry ya que se puede utilizar s3 etc..
-e STORAGE_PATH=/registry donde nos va ha guardar las imagenes que subamos
-e SEARCH_BACKEND=sqlalchemy -e SQLALCHEMY_INDEX_DATABASE:sqlite:////registry/database/docker-registry.db tipo de BBDD donde indexara todas las imagenes

Una vez lanzado esto podemos ya tagear y subir nuestras imagenes comprobamos que todo esta corriendo accediendo mediante el navegador al puerto 5000 de nuestro localhost.

si ponemos http://localhost:5000/v1/search veremos la api rest que tiene el registry.

Ahora levantamos la interface web para ver las imagenes darle un poco de color al projecto.

docker run -d -t -p 80:8080 --link registry:dockerhub -v /opt/repo/database:/var/lib/h2 -e REG1=http://dockerhub:5000/v1/ registry_ui

--link esto permite la visibilidad entre contenedores
-e REG1=http://dockerhub:5000/v1/ esto es donde esta nuestra api del registry osea el repo.

pues con esto ya estaria ahora solo falta tagear y subir para tagear haremos los siguiente

docker tag 'imagen' localhost:5000/repositorio/imagen:tag

ahora para subirla lo siguiente

docker push localhost:5000/repositorio/imagen:tag

Espero que os sea util

Deja un comentario