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.
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.
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/
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.
Ahora el instalador extraerá las imágenes que se utilizarán para desplegar harbor.
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.
Cuando termine la instalación, deberías ver la salida de los servicios de contenedores de harbor se está ejecutando.
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.
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‘.
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‘.
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».
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.
Una vez creado el usuario, deberías verlo en la lista del menú ‘Usuarios’.
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 defecto‘biblioteca’ 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 proyecto‘biblioteca’ para obtener los detalles de configuración de ese proyecto.
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.
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.
Ahora deberías ver que el usuario«alice» está disponible en la lista de miembros del proyecto«biblioteca».
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‘.
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
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.
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.
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.