Instalación Nexus 3, donde almacenaremos las imágenes

¿Qué es?

Un repositorio de software.

Emmmm, vale, me quedo igual, Ilústrame!!!! (Famosa frase, para mí, de un gran jefe de proyectos, que tuve en una empresa, del grupo agbar)

En la Wikipedia (http://es.wikipedia.org/wiki/Repositorio_de_software) nos dicen lo siguiente:

Un repositorio de software es un lugar de almacenamiento del cual pueden ser recuperados e instalados los paquetes de software en un ordenador.

¡Pues vale! ¿Y para qué me sirve?

Pues, en este caso, para almacenar localmente, nuestras imágenes de docker, ya que docker registry oficial y gratuito, deja mucho que desear, por ser demasiado básico (http://docs.docker.com/registry/)

Una vez superada la pequeña introducción, vamos al lío.

Primero, descargamos jdk de Oracle (sí la de Oracle y no la openjdk , con el siguiente comando:

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.rpm

Lo instalamos con:

yum install jdk-8u191-linux-x64.rpm

Vamos al directorio /opt.

cd /opt

Descargamos la última versión de Sonatype Nexus Repository OSS 3.

wget http://download.sonatype.com/nexus/3/latest-unix.tar.gz

Descomprimimos el fichero descargado.

tar xvf latest-unix.tar.gz

Una vez descomprimido el fichero de instalación, podemos borrarlo para liberar espacio en disco.

rm latest-unix.tar.gz

Establecemos un enlace simbólico al directorio de instalación de Nexus.

ln -s nexus-3.* nexus

Por motivos de seguridad, no se recomienda ejecutar Nexus con usuario root. Creamos un usuario específico para ejecutar Nexus.

adduser nexus

Cambiamos el propietario de los ficheros de instalación de Nexus al nuevo usuario que hemos creado.

chown -R nexus:nexus nexus* sonatype-work

Editamos el fichero de configuración /opt/nexus/bin/nexus.rc, descomentamos el parámetro run_as_user y le ponemos como valor el nombre del nuevo usuario que hemos creado para ejecutar Nexus.

run_as_user=»nexus»

Creamos un enlace simbólico para el script de servicio nexus en la carpeta /etc/init.d.

ln -s /opt/nexus/bin/nexus /etc/init.d/nexus

Ejecutamos los siguientes comandos para añadir el servicio nexus al arranque.

systemctl enable nexus

Para iniciar el servicio de Nexus, ejecutamos el siguiente comando.

systemctl start nexus

Editamos el fichero /opt/sonatype-work/nexus3/etc/nexus.properties y cambiamos el puerto de 8081 a 8082 ( tengo el puerto ya usado, no es obligatorio cambiarlo ) y también des comentamos la línea application-host, dejando así el fichero:

Añadimos la línea nexus – nofile 65536 al fichero /etc/security/limits.conf encima de # End of file

Reiniciamos el servicio de nexus

systemctl restart nexus

Ahora, ya podemos acceder vía web, para configurar Nexus, por la dirección http://ip_del_servidor:8082/

Pulsamos en Sign in y accedemos con admin / admin123

Pulsamos en la rueda

Pulsamos en Repositories

Create repository

Docker (hosted)

Dejamos todas las opciones, como se ven en la imagen

Pulsamos en Create repository

Pulsamos en Security -> Users

Pulsamos en Create local user

Dejamos los siguientes datos, estableciendo el password por lo que queramos y pulsamos Create local user:

Ya tenemos configurado nuestro registry local, para subir las imágenes de los contenedores.

Vale, ¿y cómo lo uso?

Pues, de la siguiente manera.

Primero, tenemos que decirle a docker, que confíe en este registry no seguro (no es http), creando el fichero /etc/docker/daemon.json con el siguiente comando:

echo << EOF > /etc/docker/daemon.json

{

"insecure-registries" : ["ip_del_servidor:8123"],

"disable-legacy-registry": true

}

EOF

Luego, reiniciamos docker, con el comando:

systemctl restart docker

Una vez reiniciado docker, ya podemos loguearnos en el nexus, con el comando:

docker login -u docker ip_del_servidor:puerto

Nos dice docker, que se ha logeado correctamente, y ya podemos trabajar con nuestro registry local.

Ahora, nos descargamos una imagen, en este caso, la de wordpress, como usamos en el post de docker-registry (http://chechy.xyz/docker-compose-ese-gran-aliado/)

Etiquetamos la imagen, para subirla a nexus:

docker tag wordpress:latest ip_del_servidor:8123/wp:latest

Y la subimos, con el siguiente comando:

docker push ip_del_servidor:8123/wp:latest

Nos indica docker, qué la ha subido, Vamos a comprobarlo al nexus

¡Aquí la tenemos!

Para usarla, solo necesitamos logear docker contra el nexus y hacer un docker pull.

Dejar una contestacion

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.