Cómo instalar el Registro de Imágenes Docker de Harbor en Ubuntu 22.04

Harbor es un registro de imágenes Docker de código abierto para entornos nativos en la nube. Como registro de imágenes, harbor se utiliza para almacenar y distribuir imágenes de contenedores. Para asegurar los artefactos, harbor proporciona protección de seguridad mediante políticas, control de acceso basado en roles de usuario, un escáner de seguridad para imágenes que garantiza que las imágenes están libres de vulnerabilidades, y firma de imágenes que garantiza que los usuarios extraen imágenes del registro de confianza.

Harbor es un proyecto graduado del CNCF y un registro de imágenes de nivel empresarial. Ofrece cumplimiento y alto rendimiento que te ayudan a gestionar artefactos de forma coherente y segura en entornos nativos de la nube como Kubernetes y Docker.

En esta guía, te mostraré cómo instalar Harbor Image Registry utilizando Docker en un servidor Ubuntu 22.04. Esta guía incluye la instalación de Docker CE, la instalación básica de Harbor con SSL activado, y el uso y administración básicos de Harbor como registro de imágenes.

Requisitos previos

Para repasar esta guía, necesitarás los siguientes requisitos:

  • Un servidor Ubuntu 22.04 – Este ejemplo utiliza el servidor Ubuntu genérico y fresco con el nombre de host ‘harbor-server’.
  • Un usuario no root con privilegios de root/administrador.
  • Un nombre de dominio o dominio local que utilizará el puerto.

Instalación de Docker CE (Community Edition)

El registro de imágenes de harbor proporciona varias versiones que pueden instalarse en distintos tipos de entornos. Puedes desplegar harbor en Kubernetes mediante el gráfico Helm o instalar harbor con Docker.

En este ejemplo instalarás harbor mediante el motor Docker. Así que ahora instalarás Docker CE (Community Edition) en tu servidor Ubuntu a través del repositorio oficial de Docker.

Ejecuta el siguiente comando apt para instalar algunas dependencias básicas.

sudo apt install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Introduce y cuando se te pida confirmación. A continuación, pulsa ENTER para continuar.

Una vez instaladas las dependencias, ejecuta el siguiente comando para descargar la clave GPG para el repositorio Docker y, a continuación, añade el repositorio oficial Docker a tu sistema.

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
«deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable» | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ahora refresca y actualiza tu índice de paquetes mediante el siguiente comando apt.

sudo apt update

Recibirás el mensaje de que se ha añadido el repositorio Docker CE.

A continuación, utiliza el siguiente comando apt para instalar Docker CE y Docker Compose en tu sistema.

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Introduce y para confirmar la instalación y pulsa ENTER para continuar.

instalar docker

Una vez instalado Docker, ejecuta el siguiente comando systemctl para verificar el estado actual del servicio Docker.

sudo systemctl is-enabled docker
sudo systemctl status docker

Ahora deberías recibir una salida como la de la siguiente captura de pantalla: el servicio Docker se está ejecutando y está habilitado. El servicio Docker se ejecutará automáticamente al arrancar el sistema.

verificar el servicio docker

Una vez instalado el motor Docker, inicia la instalación de Harbor descargando el paquete instalador de Harbor.

Descarga del instalador de Harbor

Necesitarás descargar el paquete instalador del puerto para instalar el puerto. Existen dos tipos de instaladores de harbor: la versión offline y la versión online.

Esta guía utiliza el instalador del puerto sin conexión para instalar el puerto. Así que ahora descargarás el instalador offline del puerto en tu sistema.

Mueve el directorio de trabajo a ‘/tmp’ y descarga el instalador harbor offline mediante el siguiente comando curl.

cd /tmp
curl -s https://api.github.com/repos/goharbor/harbor/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep '\.tgz$' | wget -i -

Ahora extrae el instalador de harbor offline con el comando tar que aparece a continuación. Una vez extraído el instalador, deberías ver el nuevo directorio«harbor».

tar -xzvf harbor-offline-installer-v2.6.1.tgz

Mueve el directorio ‘harbor‘ a ‘/opt, lo que significa que tu instalación de harbor será‘/opt/harbor’.

sudo mv harbor /opt/

descargar el instalador del puerto

Configurar la instalación de Harbor

Una vez descargado el instalador offline de harbor, ahora deberás configurar la instalación de harbor mediante el archivo de configuración ‘harbor.yml’ que se incluye en el paquete harbor.

Con el archivo ‘harbor.yml’, configurarás el nombre de dominio para la instalación del puerto, habilitarás HTTPS seguro en el puerto, establecerás una contraseña de administrador y, por último, configurarás la base de datos.

Antes de empezar, asegúrate de que tienes el nombre de dominio apuntando a la dirección IP del servidor y los certificados SSL generados que se utilizarán para asegurar el puerto.

Mueve tu directorio de trabajo al directorio de instalación de harbor ‘/opt/harbor’.

cd /opt/harbor

Copia la plantilla de configuración de harbor ‘harbor .yml.tmpl’ en‘harbor.yml‘. A continuación, utiliza el siguiente comando del editor nano para editar el archivo de configuración del puerto ‘harbor.yml‘.

cp harbor.yml.tmpl harbor.yml
sudo nano harbor.yml

Cambia los detalles de configuración como se indica a continuación.

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: registry.hwdomain.io
....

# https related config
https:
# https port for harbor, default is 443
port: 443
# The path of cert and key files for nginx
certificate: /etc/letsencrypt/live/registry.hwdomain.io/fullchain.pem
private_key: /etc/letsencrypt/live/registry.hwdomain.io/privkey.pem

....

# The initial password of Harbor admin
# It only works in first time to install harbor
# Remember Change the admin password from UI after launching Harbor.
harbor_admin_password: Harbor_Docker_Ubuntu

....

# Harbor DB configuration
database:
# The password for the root user of Harbor DB. Change this before any production use.
password: db_pass_harbor

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación se detalla la sección de la configuración:

  • hostname – el nombre de dominio que se utilizará para ejecutar el registro de imágenes harbor. En este ejemplo, el puerto se instalará en ‘registry.hwdomain.io’.
  • https – si descomentas esta opción, habilitarás y asegurarás la instalación de tu puerto. Pero también debes asegurarte de que has generado certificados SSL para tu dominio e introducir la ruta completa de la clave pública y privada del certificado.
  • harbor_admin_password – la contraseña inicial que se utilizará durante la instalación de harbor.
  • base_de_datos – configuración de la base de datos para el puerto. Asegúrate de cambiar la contraseña por una nueva contraseña segura.

Instalación de Harbor mediante el script de instalación y Docker Compose

Una vez descargado el instalador offline de harbor y configurado el archivo de configuración base ‘harbor.yml’, estarás listo para iniciar la instalación de harbor mediante el script de instalación ‘install.sh’ que está disponible en el directorio de instalación de harbor ‘/opt/harbor‘.

Antes de iniciar la instalación del puerto, asegúrate de que tu directorio de trabajo actual es » /opt/harbor«.

Ahora ejecuta el script de instalación del puerto‘install.sh‘ con privilegios sudo.

sudo ./install.sh

El script de instalación comprobará los requisitos del sistema antes de iniciar la instalación del puerto. El instalador se asegurará de que el motor Docker y Docker Compose están instalados en el sistema.

instalación del puerto

Ahora el instalador extraerá las imágenes que se utilizarán para desplegar harbor.

extraer imágenes

Después, el instalador preparará el entorno del sistema para el despliegue de harbor y generará las configuraciones necesarias. A continuación, comenzará la instalación.

preparar el entorno

Cuando termine la instalación, deberías ver la salida de los servicios de contenedores de harbor se está ejecutando.

instalación portuaria finalizada

Ahora que has instalado harbor mediante el script instalador, a continuación verificarás harbor comprobando los servicios de contenedor de tu sistema y accediendo al registro de imágenes de harbor mediante el navegador web.

Ejecuta el siguiente comando «docker compose» para comprobar que los servicios de contenedor de harbor se están ejecutando.

ls
docker compose ps

En el resultado que se muestra a continuación, los servicios de contenedor harbor se están ejecutando y funcionan correctamente.

servicios portuarios de contenedores ccheck

A continuación, abre tu navegador web y visita el nombre de dominio de tu instalación portuaria (es decir: https://registry.hwdomain.io/). Y ahora deberías obtener la página de inicio de sesión de tu registro de imágenes harbor.

Inicia sesión con el usuario por defecto admin y la contraseña que hayas configurado a través del archivo de configuración‘harbor.yml‘.

acceso al puerto

Ahora deberías obtener el panel de control del puerto cuando tengas la contraseña correcta. Además, podrás ver en tu pantalla el proyecto por defecto del puerto con el nombre‘biblioteca‘.

salpicadero del puerto

En este punto, has finalizado el despliegue de baro y has verificado que el puerto se está ejecutando a través del motor de orquestación de contenedores Docker y Docker Compose.

En el siguiente paso, aprenderás la administración básica del registro de imágenes del puerto. Aprenderás a añadir un usuario, configurar el proyecto, iniciar sesión a través de la CLI de Docker y, por último, subir imágenes al puerto.

Creación de un usuario Harbor

Una vez que el registro de imágenes del puerto esté en funcionamiento, debes aprender a configurar y crear un nuevo usuario a través del panel de administración del puerto.

En la sección«Administración«, haz clic en el menú«Usuarios» y, a continuación, en el botón«NUEVO USUARIO».

crear nuevo usuario

Introduce los datos del nuevo usuario y confirma pulsando el botón «Aceptar«. En este ejemplo, crearás un nuevo usuario de puerto«alice» que se utilizará para iniciar sesión en el puerto a través del docker cli.

datos del usuario

Una vez creado el usuario, deberías verlo en la lista del menú ‘Usuarios’.

nuevo usuario creado

Añadir un usuario al proyecto Harbor

En harbor, el espacio en el que trabajará el usuario es el proyecto. En la instalación por defecto, harbor proporciona el nombre de proyecto por defecto‘biblioteca‘.

En este paso, aprenderás a añadir el nuevo usuario‘alice‘ al proyecto por defectobiblioteca’ para que el nuevo usuario pueda gestionar el proyecto‘biblioteca‘. Además, tendrás que asignar el rol para el nuevo usuario en el proyecto de destino.

Haz clic en el menú«Proyecto» y deberías ver el proyecto predeterminado«biblioteca» disponible en tu puerto.

Haz clic en el proyectobiblioteca’ para obtener los detalles de configuración de ese proyecto.

proyecto portuario

Haz clic en el menú «Miembros» y verás que sólo hay un miembro administrador en ese proyecto. Haz clic en el botón«USUARIO» para añadir el usuario del puerto a la«biblioteca» del proyecto.

añadir usuario al proyecto

Introduce el usuario que quieres añadir al proyecto y asígnale el rol. Este ejemplo añadirá el usuario‘alice‘ a la ‘biblioteca’ del proyecto con el rol‘Administrador del Proyecto‘.

Haz clic en«Aceptar» para confirmar.

añadir usuario al proyecto

Ahora deberías ver que el usuario«alice» está disponible en la lista de miembros del proyecto«biblioteca».

usuario añadido

Iniciar sesión en Harbor a través del Cliente Docker

En este paso, aprenderás a configurar el registro de imágenes Harbor con la CLI de Docker. Accederás al registro de imágenes Harbor a través de la CLI de Docker con el usuario que hayas creado – en este ejemplo se utiliza el usuario‘alice‘.

Vuelve a tu servidor terminal y ejecuta el siguiente comando docker para acceder al registro de imágenes harbor.

docker login https://registry.hwdomain.io/

Cuando se te solicite, introduce el nombre de usuario y la contraseña de tu usuario. En este ejemplo se utilizará el usuario ‘alice‘.

Cuando el inicio de sesión tenga éxito, deberías ver un mensaje como‘Login Succeeded‘.

iniciar sesión en el puerto a través de docker cli

Después de iniciar sesión en el puerto a través del docker cli, ahora puedes extraer y enviar imágenes al puerto a través del docker cli.

Enviar imágenes al Registro del Puerto

Tras autenticarte en el registro de imágenes del puerto, ahora aprenderás a enviar/subir una imagen a tu registro de imágenes del puerto mediante la CLI de Docker.

Antes de empezar, ejecuta el siguiente comando docker para descargar la última versión de la imagen ‘nginx:alpine’.

docker pull nginx:alpine

Ahora comprueba la lista de imágenes mediante el siguiente comando docker. Deberías ver la imagen ‘nginx:alpine’ descargada.

docker images

lista de imágenes

Para empujar las imágenes personalizadas al registro de imágenesharbor, puedes cambiar la etiqueta de la imagen actual con el formato como‘harbor-dominio.com/proyecto/imagen:versión‘.

Por tanto, ejecuta el siguiente comando para cambiar la etiqueta por defecto‘nginx: alpine‘ por ‘registry.hwdomain.io/library/nginx:alpine‘.

docker tag nginx:alpine registry.hwdomain.io/library/nginx:alpine

Después, sube y empuja la imagen al registro de imágenes del puerto con el siguiente comando. Este comando subirá la imagen al registro de imágenes‘registry.hwdomain. io’ con el nombre de proyecto‘library‘.

docker push registry.hwdomain.io/library/nginx:alpine

A continuación se muestra la salida durante el proceso de envío de la imagen al registro de imágenes del puerto.

etiquetar y enviar la imagen al registro de imágenes del puerto

Una vez cargada la imagen en el puerto, vuelve al panel de administración del puerto y haz clic en el menú«Proyecto» y en«Repositorios«. Deberías ver que la nueva imagen se ha subido al registro de imágenes del puerto a través de la línea de comandos de Docker.

registro de imágenes del puerto

Conclusión

Has instalado el registro de imágenes harbor mediante Docker en un servidor Ubuntu 22.04. También has asegurado el despliegue del puerto con certificados SSL, por lo que ahora puedes acceder al puerto a través de una conexión segura HTTPS.

Para la administración básica del puerto, has aprendido a configurar usuarios y asignarles un rol en el puerto. También has aprendido la administración básica para gestionar proyectos en el puerto. Y por último, has añadido con éxito harbor a Docker como registro de imágenes y has subido una imagen a harbor.

A partir de aquí, puedes empezar a añadir un nuevo usuario y configurar un nuevo proyecto que se utilizará para tu equipo de desarrollo.

También te podría gustar...