Nota:

Aprende a instalar Project Quay en Podman

Introducción

Project Quay es un repositorio de código abierto que se utiliza para almacenar y gestionar artefactos como contenedores para su uso en plataformas nativas en la nube. Project Quay también ofrece funcionalidades adicionales como (sin orden en particular):

Se puede desplegar en un cluster de Kubernetes mediante un operador o como un contenedor independiente o un cluster de alta disponibilidad en Podman.

Objetivos

En este laboratorio se muestra cómo instalar y ejecutar Project Quay en Podman y, a continuación, confirmar que funciona. Los pasos principales descritos se describen a continuación:

Nota: Los pasos proporcionados no incluyen cómo configurar el registro mediante certificados. Por lo tanto, se recomienda para fines de no producción o un entorno interno o de espacio aéreo.

Requisitos

Exención de responsabilidad de soporte de Oracle

Oracle no proporciona soporte técnico para la secuencia de pasos que se proporcionan en las siguientes instrucciones porque estos pasos hacen referencia a programas de software y sistemas operativos que Oracle no proporciona. En este tutorial se proporcionan instrucciones opcionales solo para su comodidad.

Para obtener más información sobre el método soportado de Oracle para el desarrollo y uso de servicios basados en Podman, consulte https://docs.oracle.com/en/operating-systems/oracle-linux/podman/.

Configuración del entorno de prácticas

Nota: Al utilizar el entorno de prácticas gratuitas, consulte Oracle Linux Lab Basics para obtener instrucciones de conexión y otras instrucciones de uso.

  1. Abra un terminal y conéctese mediante ssh a la instancia de ol-server si aún no está conectada.

    ssh oracle@<ip_address_of_instance>
    

(Opcional) Confirmación de Funcionamiento de Podman

El paquete de herramientas de contenedor de Oracle Linux proporciona las versiones más recientes de Podman, Buildah, Skopeo y las dependencias asociadas.

  1. Compruebe la versión de Podman.

    podman -v
    
  2. Confirme que la CLI de Podman está funcionando.

    podman run quay.io/podman/hello
    

    Ejemplo de salida:

    [oracle@ol-server ~]$ podman run quay.io/podman/hello
    Trying to pull quay.io/podman/hello:latest...
    Getting image source signatures
    Copying blob f82b04e85914 done  
    Copying config dbd85e09a1 done  
    Writing manifest to image destination
    Storing signatures
    !... Hello Podman World ...!
    
             .--"--.           
           / -     - \         
          / (O)   (O) \        
       ~~~| -=(,Y,)=- |         
        .---. /`  \   |~~      
     ~/  o  o \~~~~.----. ~~   
      | =(X)= |~  / (O (O) \   
       ~~~~~~~  ~| =(Y_)=-  |   
      ~~~~    ~~~|   U      |~~ 
    
    Project:   https://github.com/containers/podman
    Website:   https://podman.io
    Documents: https://docs.podman.io
    Twitter:   @Podman_io
    

Configurar red

Definición de reglas de firewall

Edite las reglas de firewall del sistema para abrir los puertos que requiere Project Quay.

  1. Actualizar reglas de firewall

    sudo firewall-cmd --permanent --add-port=80/tcp
    sudo firewall-cmd --permanent --add-port=443/tcp
    sudo firewall-cmd --permanent --add-port=5432/tcp
    sudo firewall-cmd --permanent --add-port=6379/tcp
    sudo firewall-cmd --reload
    
    

    Ejemplo de salida:

    [oracle@ol-server ~]$ sudo firewall-cmd --permanent --add-port=80/tcp
    success
    [oracle@ol-server ~]$ sudo firewall-cmd --permanent --add-port=443/tcp
    success
    [oracle@ol-server ~]$ sudo firewall-cmd --permanent --add-port=5432/tcp
    success
    [oracle@ol-server ~]$ sudo firewall-cmd --permanent --add-port=6379/tcp
    success
    [oracle@ol-server ~]$ sudo firewall-cmd --reload
    success
    

    A continuación, se muestra una lista de cómo se utiliza cada puerto:

    • Puertos 80 y 443: utilizados por el contenedor Quay
    • Puerto 5432: utilizado por el contenedor PostgreSQL
    • Puerto 6379: utilizado por el contenedor Redis

Configurar archivo de host

Existen varias formas de configurar las redes utilizadas por los contenedores de Project Quay para garantizar que se puedan comunicar juntos. Para obtener más información, consulte la documentación de Project Quay.

Una de estas opciones es garantizar que el nombre de host del sistema Oracle Linux se pueda resolver. Esto ya se ha completado en el entorno de prácticas libres proporcionado agregando el nombre de host corto ol-server y el nombre de host FQDN al archivo de hosts junto con la dirección IP asociada.

  1. Compruebe el contenido actual del archivo /etc/hosts.

    cat /etc/hosts
    

    Ejemplo de salida:

    [oracle@ol-server ~]$ cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.0.150 ol-server.pub.linuxvirt.oraclevcn.com ol-server
    

(Opcional) Instalar el cliente PostgreSQL

Este paso permite acceder a la base de datos PostgreSQL desde la línea de comandos fuera del contenedor. Este paso no es necesario para configurar el contenedor.

  1. Instale el cliente PostgreSQL.

    sudo dnf -y install postgresql
    

Configurar el almacén de datos de muelle de proyecto

Project Quay utiliza una base de datos para almacenar metadatos. El uso de Postgres es la opción por defecto y se utiliza en este tutorial. Los usuarios también pueden utilizar MySQL como alternativa, pero eso está fuera del ámbito de esta práctica.

  1. Cree un directorio para el almacenamiento de datos del contenedor de base de datos.

    sudo mkdir -p /var/lib/pgsql/data
    
  2. Defina los permisos correctos en el almacenamiento de datos.

    sudo chmod 0755 /var/lib/pgsql/data
    
    sudo setfacl -m u:26:-wx /var/lib/pgsql/data
    
  3. Defina las variables de entorno.

    Estos definen las variables de Postgres que se utilizarán para iniciar el contenedor de Postgres.

    export POSTGRESQL_CONTAINER_NAME=postgres
    export POSTGRESQL_DB=quay
    export POSTGRESQL_USER=quayuser
    export POSTGRESQL_PASSWORD=quay-test
    
    

    Nota: Estas variables se utilizan para definir lo siguiente:

    • POSTGRESQL_CONTAINER_NAME hace referencia al nombre utilizado por el contenedor Postgres.

    • POSTGRESSQL_DB, POSTGRES_USER y POSTGRES_PASSWORD hacen referencia a los valores específicos de Postgres.

  4. Inicie el contenedor Postgres especificando detalles como el nombre de usuario, la contraseña, el nombre de base de datos, el número de puerto y el punto de montaje de volumen para el almacén de datos de la base de datos.

    sudo podman run --detach --name ${POSTGRESQL_CONTAINER_NAME} \
       --env POSTGRES_USER=${POSTGRESQL_USER} \
       --env POSTGRES_PASSWORD=${POSTGRESQL_PASSWORD} \
       --env POSTGRES_DB=${POSTGRESQL_DB} \
       --publish 5432:5432 \
       --volume /var/lib/pgsql/data:/var/lib/postgresql/data:Z \
       docker.io/library/postgres:latest
    

    NOTA: :Z al final de la configuración -volume permite que este volumen de almacenamiento funcione con SELinux activado. SELinux está activado por defecto en Oracle Linux.

Agregue el módulo Trigram a PostgreSQL

(Opcional) Use el cliente PostgreSQL

Estos pasos sólo son posibles si los paquetes de cliente Postgres se instalaron en el paso opcional anterior. Omita este paso opcional si esos paquetes no se instalaron.

  1. Conéctese a la base de datos.

    psql -h $(hostname -i) quay quayuser
    

    Password for user quayuser: es quay-test, como se define en la exportación y la creación del contenedor anteriores.

  2. Cree el módulo trigram.

    CREATE EXTENSION IF NOT EXISTS pg_trgm;
    

    Ejemplo de salida:

    quay=# CREATE EXTENSION IF NOT EXISTS pg_trgm;
    CREATE EXTENSION
    
  3. Para salir del cliente PostgreSQL, escriba \q y, a continuación, la clave RETURN.

    \q
    

    Ejemplo de salida:

    quay=# \q                                     
    [oracle@ol-server ~]$
    

Ejecutar directamente en el contenedor

  1. Cree el módulo trigram.

    sudo podman exec -it postgres /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS pg_trgm" | psql -d quay -U quayuser'
    

    Ejemplo de salida:

    [oracle@ol-server ~]$ sudo podman exec -it postgres /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS pg_trgm" | psql -d quay -U quayuser'
    CREATE EXTENSION
    

Verifique el estado del contenedor PostgreSQL

  1. Confirme que se ha iniciado la base de datos.

    sudo podman ps
    

    Ejemplo de salida:

    [oracle@ol-server ~]$ sudo podman ps
    CONTAINER ID  IMAGE                             COMMAND               CREATED         STATUS             PORTS                   NAMES
    1ec4a57b792d  docker.io/library/postgres:10.12  postgres              27 minutes ago  Up 26 minutes ago  0.0.0.0:5432->5432/tcp  postgresql
    
  2. Compruebe los logs de contenedor.

    sudo podman logs -f postgres
    

    Nota: Utilice CTRL+C para volver al símbolo del sistema.

    Ejemplo de salida:

    PostgreSQL init process complete; ready for start up.
    
    2023-02-01 16:11:49.512 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
    2023-02-01 16:11:49.512 UTC [1] LOG:  listening on IPv6 address "::", port 5432
    2023-02-01 16:11:49.514 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
    2023-02-01 16:11:49.524 UTC [64] LOG:  database system was shut down at 2023-02-01 16:11:49 UTC
    2023-02-01 16:11:49.528 UTC [1] LOG:  database system is ready to accept connections
    
  3. Confirme la dirección IP del contenedor Postgres. Anote esto porque es necesario más tarde.

    sudo podman inspect -f "" postgres
    

    Ejemplo de salida:

    [oracle@ol-server ~]$ sudo podman inspect -f "" postgres
    10.88.0.2
    

    A continuación se muestra una forma alternativa de lograrlo.

    sudo podman inspect postgres | grep IPAddress
    

    Ejemplo de salida:

    [oracle@ol-server ~]$ sudo podman inspect postgres | grep IPAddress
                "IPAddress": "10.88.0.2",
                             "IPAddress": "10.88.0.2",
    

    Nota: El nombre postgres utilizado aquí coincide con el nombre utilizado en la variable --name utilizada en el comando Podman anterior para crear el contenedor PostgreSQL.

Configurar Redis

Project Quay necesita Redis para almacenar información efímera.

  1. Cree un directorio para el almacenamiento de datos de contenedores de Redis.

    sudo mkdir -p /var/lib/redis
    
  2. Defina los permisos.

    sudo chmod 0755 /var/lib/redis
    
  3. Inicie el contenedor Redis.

    sudo podman run --detach --name redis \
                    --restart=always \
                    --publish 6379:6379 \
                    --privileged=true \
                    --volume /var/lib/redis:/var/lib/redis:Z \
                    docker.io/library/redis:latest
    
    
  4. Confirme que el contenedor de Redis se está ejecutando.

    sudo podman ps
    
  5. Compruebe los logs del contenedor de Redis.

    sudo podman logs -f redis
    

    Nota: Utilice CTRL+C para volver al símbolo del sistema.

  6. Confirme la dirección IP del contenedor Redis. Anote esto porque es necesario más tarde.

    sudo podman inspect -f "" redis
    

Configurar muelle de proyecto

Project Quay incluye una herramienta que proporciona los detalles para configurar la base de datos PostgreSQL y generar los archivos de configuración de Quay. La herramienta de configuración en sí está basada en web y los archivos de configuración de Quay se generan como un archivo YAML tar/comprimido, que se debe ampliar después de moverlos en su lugar.

  1. Inicie la obra Project Quay ConfigTool.

    sudo podman run -d --name quay-config -p 80:8080 -p 443:8443 quay.io/projectquay/quay config secret-pass
    

    Ejemplo de salida:

    [oracle@ol-server ~]$ sudo podman run -d --name quay-config -p 80:8080 -p 443:8443 quay.io/projectquay/quay config secret-pass
    Trying to pull quay.io/projectquay/quay:latest...
    Getting image source signatures
    Copying blob ec924a250552 done  
    Copying blob fd07da1562ac done  
    Copying blob 3550ee360766 done  
    Copying blob b68865894b50 done  
    Copying blob ff46f0c54d73 done  
    Copying blob 88956768f1ec done  
    Copying blob 644b12ae1636 done  
    Copying blob 9661ced91a5f done  
    Copying config c1a4397f6e done  
    Writing manifest to image destination
    Storing signatures
    cc84cafcc5bdc41dacc86c22ba7d0d52d2bf02c0b1fca9aa59879942c7669f13
    
  2. Haga clic con el botón derecho en el escritorio Luna y seleccione Open Terminal Here.

  3. En el terminal recién abierto, configure un túnel SSH.

    ssh -L 8080:localhost:80 oracle@<ip_address_of_ol-server>
    

    Ejemplo de salida:

    [luna.user@lunabox ~]$ ssh -L 8080:localhost:80 oracle@129.159.195.234
    Activate the web console with: systemctl enable --now cockpit.socket
    
    Last login: Tue Feb  7 18:56:30 2023 from 138.1.16.50
    

    Donde 8080 es el puerto abierto en el escritorio Luna al puerto 80 en el host. El puerto 80 es el puerto asignado externamente para el contenedor Project Quay.

  4. Desde el escritorio Luna, abra una nueva sesión de navegador e introduzca la URL de Project Quay ConfigTool.

    http://localhost:8080
    

    Ejemplo de salida:

    pgadmin-conexión

  5. Inicie sesión en el editor Quay Configuration utilizando los valores proporcionados.

    • Nombre de usuario: quayconfig
    • Contraseña: secret-pass (Nota: coincide con el último parámetro transferido al iniciar el contenedor de configuración de muelle).

    Ejemplo de salida:

    pgadmin-conexión

Introducir información de configuración de muelle

Los siguientes pasos implican introducir nuevos detalles, mientras que otros utilizan parte de la información recopilada o anotada en los pasos anteriores al configurar Postgres, Redis, etc.

  1. Si aún no está visible después de iniciar sesión, desplácese a la sección 'Configuración básica'. Observe que hay varios campos que se pueden rellenar.

    • Título de registro, Título de registro corto, URL de logotipo de empresa e Información de contacto

    A efectos de este laboratorio/tutorial, no se realizarán cambios.

    Ejemplo de salida:

    pgadmin-conexión

  2. Desplácese hacia abajo hasta la sección Configuración del servidor, introduzca el nombre de host del servidor (como se ha visto anteriormente en el archivo /etc/hosts).

    • Nombre de host del servidor: ol-server.pub.linuxvirt.oraclevcn.com

    Ejemplo de salida:

    pgadmin-conexión

  3. A continuación, desplácese hacia abajo hasta la sección denominada: Base de datos.

    Ejemplo de salida:

    pgadmin-conexión

  4. Haga clic en el cuadro desplegable junto al campo denominado Tipo de base de datos. Se muestran dos opciones: MySQL y Postgres, seleccione Postgres.

    Nota: El motivo para seleccionar Postgres es permitir que la opción seleccione la herramienta de exploración Clair en una fecha posterior, porque la herramienta de exploración Clair no funciona con una base de datos de Quay MySQL.

    Ejemplo de salida:

    pgadmin-conexión

  5. Ahora se muestran los campos específicos de Postgres, introduzca los detalles para permitir el acceso a Postgres.

    • Servidor de base de datos: seleccione: a) Introduzca $HOSTNAME o FQDN como se haya introducido en el archivo /etc/hosts (que se debe resolver mediante DNS) o b) utilice la dirección IP de contenedor indicada en un paso anterior (por ejemplo: 10.88.0.2).
    • Nombre de usuario: quayuser
    • Contraseña: prueba de memoria
    • Nombre de base de datos: muelle

    **Nota: Todos estos valores DEBEN coincidir con los utilizados al iniciar el contenedor Postgres (ver anteriormente), pero de lo contrario son totalmente configurables por el usuario.

    Ejemplo de salida:

    pgadmin-conexión

  6. Continúe desplazándose hacia abajo hasta la sección Redis, introduzca la dirección IP devuelta durante el inicio del contenedor Redis anteriormente.

    • Nombre de host de Redis: seleccione: a) Introduzca $HOSTNAME o FQDN como se introdujo en el archivo /etc/hosts (que se debe resolver mediante DNS) o b) utilice la dirección IP de contenedor indicada en un paso anterior (por ejemplo: 10.88.0.3).

    Ejemplo de salida:

    pgadmin-conexión

  7. Observe que en la parte inferior de la pantalla del explorador hay un cuadro de diálogo floating denominado Validate Configuration Changes.

    Ejemplo de salida:

    pgadmin-conexión

  8. Haga clic en él para confirmar que se han cumplido los requisitos mínimos para que funcione el servidor de Project Quay.

    Ejemplo de salida:

    pgadmin-conexión

  9. Haga clic en el botón para descargar el archivo de configuración. Confirme que el archivo (quay-config.tar.gz) se ha descargado.

    NOTA: en el entorno de práctica, el archivo de configuración generado se guarda en el directorio ~/Downloads del escritorio Luna, no en el servidor en el que se está configurando el repositorio Quay).

    Ejemplo de salida:

    pgadmin-conexión

  10. Haga clic con el botón derecho en el escritorio Luna y seleccione Open Terminal Here. En el terminal recién abierto, confirme que se haya descargado el archivo de configuración.

    ls -lsa ~/Downloads
    

    Ejemplo de salida:

    [luna.user@lunabox Desktop]$ ls -lsa ~/Downloads
    total 12
    0 drwx------. 2 luna.user luna.user   32 Feb  8 11:59 .
    8 drwx------. 1 luna.user luna.user 4096 Feb  8 11:59 ..
    4 -rw-rw-r--. 1 luna.user luna.user 1214 Feb  8 11:59 quay-config.tar.gz
    
  11. Mueva el archivo de la máquina de escritorio Luna al equipo ol-server donde se está configurando e instalando Project Quay.

    scp ~/Downloads/quay-config.tar.gz oracle@<ip_address_of_ol-server>:~
    

    IMPORTANTE: tenga cuidado de no eliminar :~ al final del comando anterior. Si se elimina, no se copiará nada en la instancia de ol-server.

    Salida de ejemplo:

    [luna.user@lunabox Downloads]$ scp quay-config.tar.gz oracle@129.159.195.234:~
    quay-config.tar.gz                            100% 1214    64.1KB/s   00:00
    
  12. Cierre la ventana de terminal activa utilizada para copiar el archivo quay-config.tar.gz escribiendo exit.

  13. Cambie a la ventana de terminal utilizada para abrir el túnel SSH.

  14. Cierre el túnel SSH escribiendo CTRL-C. Se debe terminar la sesión del túnel SSH. Mantenga la ventana de terminal abierta; se volverá a necesitar en los próximos pasos.

    NOTA: es necesario cerrar la sesión de túnel SSH porque la sesión de contenedor a la que se está conectando se ha cerrado.

  15. Cambie a la ventana de terminal original que aún está conectada a ol-server y compruebe que el archivo quay-config.tar.gz se muestra en el directorio raíz de usuarios de oracle.

    ls ~
    

    Ejemplo de salida:

    [oracle@ol-server ~]$ ls ~
    quay-config.tar.gz
    
  16. Detenga el proceso de contenedor de configuración de muelle de proyecto.

    sudo podman stop quay-config
    

    Ejemplo de salida:

    [oracle@ol-server config]$ sudo podman stop quay-config
    WARN[0010] StopSignal SIGTERM failed to stop container quay-config in 10 seconds, resorting to SIGKILL 
    quay-config
    
  17. Confirme que el contenedor quay-config se ha parado.

    sudo podman ps
    

Preparar para iniciar muelle

La ubicación real de los directorios /config y /storage del informe de proyecto se puede modificar según sea necesario, siempre que se apliquen los permisos correctos y se tenga acceso a ellos.

  1. Con la ventana de terminal original conectada a ol-server, cree una ubicación para mantener la configuración de Project Quay.

    mkdir -p ~/quay/config
    
  2. Cree una ubicación en la que Project Quay pueda almacenar sus artefactos.

    mkdir -p ~/quay/storage
    
  3. Amplíe el archivo Tar Gzipped al directorio de configuración de Quay.

    tar -xzvf quay-config.tar.gz -C ~/quay/config/
    
  4. Confirme que el archivo de configuración YAML existe.

    cat ~/quay/config/config.yaml
    
  5. Otorgue acceso root 'Read' (Lectura) al directorio Project Quay config.

    sudo setfacl -R -m u:1001:r ~/quay/config
    
  6. Otorgue acceso root 'Read', 'Write' y 'Execute' al directorio Project Quay storage.

    sudo setfacl -R -m u:1001:rwx ~/quay/storage
    

Iniciar orden de proyecto

  1. Inicie el servidor de Project Quay.

    sudo podman run --name quay --restart=always --publish 443:8443 --publish 80:8080 --privileged=true --volume ~/quay/config:/conf/stack:Z --volume ~/quay/storage:/datastorage:Z --detach quay.io/projectquay/quay:latest
    
  2. Confirme que se ha iniciado.

    sudo podman ps
    
  3. Compruebe los logs de órdenes del proyecto: esta operación puede tardar entre 15 y 20 minutos en completarse la primera vez que se inicia la tarea.

    sudo podman logs -f quay
    
  4. Cambie a la ventana de terminal utilizada anteriormente para configurar un túnel SSH y vuelva a abrir el túnel SSH.

    ssh -L 8080:localhost:80 oracle@<ip_address_of_ol-server>
    

    Ejemplo de salida:

    [luna.user@lunabox ~]$ ssh -L 8080:localhost:80 oracle@129.159.195.234
    Activate the web console with: systemctl enable --now cockpit.socket
    
    Last login: Tue Feb  7 18:56:30 2023 from 138.1.16.50
    
  5. En el escritorio Luna, abra una nueva ventana del explorador y conéctese a la pantalla de inicio de sesión de Project Quay Registry.

    http://localhost:8080
    

    Ejemplo de salida:

    pgadmin-conexión

    Nota: Si la ventana del explorador devuelve un mensaje de error (que a menudo indica que no se puede cargar la configuración), significa que el servidor de Project Quay aún se está configurando para este inicio inicial. Espere y vuelva a intentarlo en unos minutos.

Crear nuevo usuario y conexión de prueba de proyecto

  1. Lo primero que hay que hacer es crear un nuevo usuario. En la pantalla Quay Login, haga clic en el enlace (debajo de los campos Username y Password) denominado Create Account.

    Ejemplo de salida:

    pgadmin-conexión

  2. Aparece la página Crear nueva cuenta, introduzca la siguiente información.

    • Nombre de usuario: será el nombre de usuario que se mostrará en el registro de muelles.
    • Dirección de correo electrónico: debe ser una dirección de correo electrónico válida (no se utiliza en esta práctica para la verificación)
    • Contraseña: introduzca una contraseña (debe tener un mínimo de 8 caracteres)

    Nota: Si alguno de los campos muestra un fondo rojo, significa que se ha introducido un valor inesperado o no válido. Un fondo verde indica que los valores introducidos son válidos.

    Ejemplo de salida:

    pgadmin-conexión

    Importante: La creación de un superusuario se documenta aquí. Un superusuario es un usuario normal al que se le han otorgado privilegios extendidos, lo que incluye la capacidad de realizar las siguientes acciones.

    • Gestionar usuarios
    • Gestionar organizaciones
    • Logs de uso de consultas
    • Ver el log de cambios
  3. Una vez que todos los campos de entrada tengan un fondo verde (consulte la captura de pantalla anterior), haga clic en el botón Create Account. Project Quay crea la nueva cuenta y se conecta automáticamente.

    (Opcional) Decida si desea guardar los valores de nombre de usuario y contraseña según la opción personal o la política de la compañía.

    Ejemplo de salida:

    pgadmin-conexión

  4. La muelle del proyecto se está ejecutando y el primer usuario está conectado.

    Ejemplo de salida:

    pgadmin-conexión

Creación de un nuevo repositorio de registro de órdenes de proyecto

Un repositorio de Project Quay suele denominarse igual que la imagen de contenedor que se almacenará ('push') una vez configurada. Esto hace que sea mucho más claro localizar imágenes de contenedor de este registro de contenedor alojado localmente posteriormente. Sin embargo, para los pasos del laboratorio no es necesario cumplir esto, por lo que las capturas de pantalla muestran que el nombre del repositorio es _test01.

  1. Haga clic en el enlace Crear nuevo repositorio (en la parte superior derecha de la pantalla), se muestra la pantalla Crear nuevo repositorio.

    Ejemplo de salida:

    pgadmin-conexión

  2. Complete los valores necesarios. Estos se muestran a continuación.

    • Nombre de repositorio: los nombres de repositorio deben coincidir con [a-z0-9][.a-z0-9-]*(/[a-z0-9][.a-z0-9-]) (Nota: las letras mayúsculas no son válidas)
    • Descripción del repositorio: es opcional.
    • Elija si el repositorio es Público o Privado según la finalidad deseada.

    Nota: Los valores de Descripción del repositorio y Público/Privado se pueden modificar posteriormente.

    Ejemplo de salida:

    pgadmin-conexión

  3. Haga clic en el botón para crear el nuevo repositorio. Se mostrará Crear repositorio privado o Create_Public_Repository, según el tipo de repositorio seleccionado en el paso anterior.

    Ejemplo de salida:

    pgadmin-conexión

  4. Se muestra el repositorio recién creado.

    Ejemplo de salida:

    pgadmin-conexión

    En este punto, se ha iniciado el registro de órdenes del proyecto, se ha creado un nuevo usuario y se ha conectado. Por último, se ha creado un nuevo repositorio en Container Registry. El siguiente paso es volver a la línea de comandos y cargar un contenedor en este registro de contenedor recién creado.

Uso de Project Quay

Estos pasos demuestran cómo extraer una imagen de un registro externo y, a continuación, etiquetar la imagen, iniciar sesión en el registro de diseño de proyecto recién creado, antes de empujar la imagen en el repositorio test01 recién creado.

Nota: Debido a que esta instalación de Project Quay no se ha configurado con certificados SSL, las operaciones Conexión y Transferencia necesitan que se utilice un indicador adicional (--tls-verify=false), de lo contrario, fallarán. En un entorno de producción, el indicador --tls-verify=false NO se debe utilizar.

  1. Abra un terminal y conéctese mediante ssh a la instancia de ol-server si aún no está conectada.

    ssh oracle@<ip_address_of_ol-server>
    
  2. Extraiga una imagen que se va a almacenar en el registro de órdenes de proyecto alojado localmente.

    podman pull quay.io/operator-framework/operatorhubio:v4
    

    Ejemplo de salida:

    podman pull quay.io/operator-framework/operatorhubio:v4
    Trying to pull quay.io/operator-framework/operatorhubio:v4...
    Getting image source signatures
    Copying blob de07aeb713d7 done  
    Copying blob ef32bf2cb8c7 done  
    Copying blob bf5952930446 done  
    Copying blob 84807cd1a858 done  
    Copying blob 1e60e070fb81 done  
    Copying blob a42b61b64a1a done  
    Copying blob 4002c47008f9 done  
    Copying blob 44e6bcd92ca9 done  
    Copying blob f8baa3854da1 done  
    Copying blob c0ea348411ae done  
    Copying config 11fa238eb3 done  
    Writing manifest to image destination
    Storing signatures
    11fa238eb3e3aa3262cafd975a9ca787e4f0832cd369ce3d1cb1c9c70573f4be
    
  3. Etiquete la imagen descargada con los detalles del destino (el registro de órdenes de proyecto recién creado). La etiqueta utilizada puede ser cualquier valor preferido; en este ejemplo, es 'latest".

    podman tag quay.io/operator-framework/operatorhubio:v4 ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    

    Donde user01 es el nombre de su nombre de usuario en el registro y test01 es el nombre del registro.

  4. Conéctese al registro de órdenes de proyecto recién creado y al repositorio que acaba de crear.

    podman login --tls-verify=false ol-server.pub.linuxvirt.oraclevcn.com/user01/test01
    

    Nota: Utilice los valores Nombre de usuario y Contraseña utilizados al crear el usuario de la prueba de proyecto en los pasos anteriores.

    Ejemplo de salida:

    [oracle@ol-server ~]$ podman login --tls-verify=false ol-server.pub.linuxvirt.oraclevcn.com/user01/test01
    Username: user01
    Password: 
    Login Succeeded!
    
  5. Transfiera la imagen al registro de órdenes de proyecto recién creado.

    podman push --tls-verify=false quay.io/operator-framework/operatorhubio:v4 ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    

    Ejemplo de salida:

    podman push --tls-verify=false quay.io/operator-framework/operatorhubio:v4 ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    Getting image source signatures
    Copying blob 8d46fa734840 done  
    Copying blob c5350d986805 done  
    Copying blob 274132c050df done  
    Copying blob d0f104dc0a1f done  
    Copying blob 9d51489878a0 done  
    Copying blob ed6469d35467 done  
    Copying blob fa152f521d35 done  
    Copying blob b277d564135b done  
    Copying blob 5764184699a3 done  
    Copying blob 15d6d3b2e9e6 done  
    Copying config 76a6ea4d80 done  
    Writing manifest to image destination
    Storing signatures
    
  6. Vuelva a la ventana del explorador y navegue hasta la sección Etiquetas de repositorio del repositorio user-1/test01 creado anteriormente; se muestra la imagen 'etiquetada'.

    Ejemplo de salida:

    pgadmin-conexión

  7. Antes de poder probar si es posible recuperar la imagen del Registro local de muelle de proyecto, es necesario eliminar la copia local.

    podman rmi ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    

    Ejemplo de salida:

    [oracle@ol-server config]$ podman rmi ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    Untagged: ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    
  8. A continuación, extraiga la imagen, pero esta vez del registro de órdenes de proyecto alojado localmente.

    podman pull --tls-verify=false ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    

    Ejemplo de salida:

    [oracle@ol-server config]$ podman pull --tls-verify=false ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    Trying to pull ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest...
    Getting image source signatures
    Copying blob eacf9093f015 done  
    Copying blob d204dcb236ad done 
    Copying blob fcbc1d0b6248 done  
    Copying blob 5dd584b7c36d done  
    Copying blob 7940dd7814b2 done  
    Copying blob a06d838fcfaf done  
    Copying blob a783f1b4704a done  
    Copying blob 8875926a3ee5 done  
    Copying blob 622c87e26f84 done  
    Copying blob 2ec61b0ec8cf done  
    Copying config 76a6ea4d80 done  
    Writing manifest to image destination
    Storing signatures
    76a6ea4d8064c26288fd07db817a683ca476b8ca64de07a2568e7acf53c78ded
    

    Esto confirma que el registro local de tareas del proyecto puede almacenar y, a continuación, servir imágenes de contenedor almacenadas en sus propios repositorios.

Pasos Siguientes

Esta acción finaliza este laboratorio en el que se muestra cómo instalar y ejecutar un registro de órdenes de proyecto en Podman. Sin embargo, Project Quay tiene muchas más características y habilidades que estaban fuera del ámbito de este laboratorio, como se muestra a continuación.

Puede encontrar más detalles en la documentación de Quay del proyecto.

Mientras tanto, muchas gracias por tomarse el tiempo para probar este Laboratorio.

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre los productos, visite Oracle Help Center.