Nota:
- Este tutorial está disponible en un entorno de laboratorio gratuito proporcionado por Oracle.
- Utiliza valores de ejemplo para las credenciales, el arrendamiento y los compartimentos de Oracle Cloud Infrastructure. Al finalizar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
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):
- Registro - Alta disponibilidad
- Seguridad - Análisis de vulnerabilidades, registro y auditoría, notificaciones y alertas
- Control de acceso - Control de acceso basado en rol (RBAC)
- Integración: soporte de OAuth
- Automatización de la compilación: integración de Git/GitHub/GitLab
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:
- Instalación de Project Quay en Podman
- Verificar que funciona la funcionalidad básica de Quay
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
- Un sistema con Oracle Linux instalado
- Podman instalado (el paquete 'container-tools')
- Acceso a Internet
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.
-
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.
-
Compruebe la versión de Podman.
podman -v
-
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.
-
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.
-
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.
-
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.
-
Cree un directorio para el almacenamiento de datos del contenedor de base de datos.
sudo mkdir -p /var/lib/pgsql/data
-
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
-
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.
-
-
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.
-
Conéctese a la base de datos.
psql -h $(hostname -i) quay quayuser
Password for user quayuser:
esquay-test
, como se define en la exportación y la creación del contenedor anteriores. -
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
-
Para salir del cliente PostgreSQL, escriba
\q
y, a continuación, la claveRETURN
.\q
Ejemplo de salida:
quay=# \q [oracle@ol-server ~]$
Ejecutar directamente en el contenedor
-
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
-
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
-
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
-
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.
-
Cree un directorio para el almacenamiento de datos de contenedores de Redis.
sudo mkdir -p /var/lib/redis
-
Defina los permisos.
sudo chmod 0755 /var/lib/redis
-
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
-
Confirme que el contenedor de Redis se está ejecutando.
sudo podman ps
-
Compruebe los logs del contenedor de Redis.
sudo podman logs -f redis
Nota: Utilice
CTRL+C
para volver al símbolo del sistema. -
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.
-
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
-
Haga clic con el botón derecho en el escritorio Luna y seleccione
Open Terminal Here
. -
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 puerto80
en el host. El puerto80
es el puerto asignado externamente para el contenedor Project Quay. -
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:
-
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:
- Nombre de usuario:
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.
-
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:
-
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:
-
A continuación, desplácese hacia abajo hasta la sección denominada: Base de datos.
Ejemplo de salida:
-
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:
-
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:
- Servidor de base de datos: seleccione: a) Introduzca $HOSTNAME o FQDN como se haya introducido en el archivo
-
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:
- Nombre de host de Redis: seleccione: a) Introduzca $HOSTNAME o FQDN como se introdujo en el archivo
-
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:
-
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:
-
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:
-
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
-
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
-
Cierre la ventana de terminal activa utilizada para copiar el archivo
quay-config.tar.gz
escribiendoexit
. -
Cambie a la ventana de terminal utilizada para abrir el túnel SSH.
-
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.
-
Cambie a la ventana de terminal original que aún está conectada a
ol-server
y compruebe que el archivoquay-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
-
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
-
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.
-
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
-
Cree una ubicación en la que Project Quay pueda almacenar sus artefactos.
mkdir -p ~/quay/storage
-
Amplíe el archivo Tar Gzipped al directorio de configuración de Quay.
tar -xzvf quay-config.tar.gz -C ~/quay/config/
-
Confirme que el archivo de configuración YAML existe.
cat ~/quay/config/config.yaml
-
Otorgue acceso
root
'Read' (Lectura) al directorio Project Quayconfig
.sudo setfacl -R -m u:1001:r ~/quay/config
-
Otorgue acceso
root
'Read', 'Write' y 'Execute' al directorio Project Quaystorage
.sudo setfacl -R -m u:1001:rwx ~/quay/storage
Iniciar orden de proyecto
-
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
-
Confirme que se ha iniciado.
sudo podman ps
-
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
-
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
-
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:
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
-
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:
-
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:
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
-
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:
-
La muelle del proyecto se está ejecutando y el primer usuario está conectado.
Ejemplo de salida:
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.
-
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:
-
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:
-
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:
-
Se muestra el repositorio recién creado.
Ejemplo de salida:
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.
-
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>
-
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
-
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 ytest01
es el nombre del registro. -
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!
-
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
-
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:
-
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
-
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.
- Se puede desplegar para alta disponibilidad (mediante Podman o Kubernetes)
- Se puede desplegar en Kubernetes mediante un operador o Helm
- Se puede integrar con los sistemas OAuth y Email
- Soporte para duplicación de repositorios
- Se puede activar la exploración de seguridad de imagen basada en Clair
- Soporte para creaciones de Dockerfile
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.
Learn to Install Project Quay on Podman
F78010-01
February 2023
Copyright © 2023, Oracle and/or its affiliates.