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