Vamos a crear un servidor que nos haga el servicio de Docker Registry donde depositaremos nuestras imagenes compiladas.

Partimos de que tenemos un servidor 192.168.1.50 y le damos el nombre dns myhub.com

Los siguientes pasos se haran en el servidor:
Crear certificado tls:

mkdir -p /opt/docker-registry/certs/
openssl req -newkey rsa:2048 -nodes -sha256 -x509 -days 365 -keyout /opt/docker-registry/certs/docker_registry.key -out /opt/docker-registry/certs/docker_registry.crt

Para poder loguearnos en el docker registry necesitamos copiar el .crt en /etc/docker/certs.d desde el docker que accede al docker registry

scp /opt/docker-registry/certs/docker_registry.crt root@k8s-master:/etc/docker/certs.d/myhub.com:5000/ca.crt

como es un certificado autofirmado debemos declararlo como insecuro en /etc/docker/daemon.js

{
  "insecure-registries" : ["myhub.com:5000"]
}

Crear passwod http

mkdir -p /opt/docker-registry/auth
docker run --entrypoint htpasswd registry:2.5 -Bbn admin password > /opt/docker-registry/auth/htpasswd

Crear directorio de datos del contenedor

mkdir -p /opt/docker-registry/data/

Por ultimo arrancamos el contenedor que nos levantara un servicio docker-registry en el puerto 5000

docker run -d -p 5000:5000 --restart=always --name registry 
  -v /opt/docker-registry/data:/var/lib/registry 
  -v /opt/docker-registry/auth:/auth 
  -e "REGISTRY_AUTH=htpasswd" 
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" 
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd 
  -v /opt/docker-registry/certs:/certs 
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/docker_registry.crt 
  -e REGISTRY_HTTP_TLS_KEY=/certs/docker_registry.key 
  -e REGISTRY_HTTP_SECRET=secret 
  -e REGISTRY_STORAGE_DELETE_ENABLED=true 
  registry:2.5

Ahora desde otro pc agregamos la resolucion dns

echo "192.168.1.50 myhub.com" >> /etc/hosts

Ya podemosintroducir el user y el password que hemos configurado en el paso anterior

docker login myhub.com:5000

Una vez nos hemos logueado podemos tagear imagenes y pushearlas a nuestro docker-registry

docker pull busybox
docker tag busybox:latest myhub.com:5000/busybox
docker push myhub.com:5000/busybox

Para ver las imageens que hay en repositorio podemos usar la api

curl --insecure -u "admin":"password" https://myhub.com:5000/v2/_catalog

Para ver los tags de una iamgen en contreto

curl --insecure -u "admin":"password" https://myhub.com:5000/v2//tags/list

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *