Cómo trabajar con la imagen de contenedor de la CLI de OCI
En esta sección se describe cómo instalar y utilizar la imagen de contenedor de la CLI de OCI.
La imagen de contenedor de la interfaz de línea de comandos (CLI) de Oracle Cloud Infrastructure (OCI) es una imagen de Docker que tiene las herramientas de la CLI de OCI preinstaladas. En esta sección se describe cómo instalar y utilizar la imagen de contenedor de la CLI de OCI.
Requisitos
Para utilizar la imagen de contenedor de la CLI de OCI, debe tener lo siguiente:
- Un motor de tiempo de ejecución de contenedor compatible con los estándares, como Docker o Podman
- Un arrendamiento de Oracle Cloud Infrastructure.
- Cuenta de usuario de esa tenencia que pertenezca a un grupo al que se hayan asignado políticas adecuadas para otorgar los permisos necesarios.
- Un par de claves que se usan para firmar solicitudes de API, con la clave pública cargada en Oracle. Solo el usuario que llama a la API debe poseer la clave privada. Para obtener más información, consulte Configuración de la CLI.
Para ver ejemplos de cómo configurar un usuario, grupo, compartimento y política nuevos, consulte Adición de usuarios. Para obtener una lista de otras políticas de OCI típicas, consulte la lista de políticas comunes.
Uso de la imagen de contenedor de la CLI de OCI
$ docker pull ghcr.io/oracle/oci-cli:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ghcr.io/oracle/oci-cli latest 387639e80a9a 3 days ago 711MB
oci
para que pueda usarse sin problemas como sustituto inmediato:$ docker tag ghcr.io/oracle/oci-cli:latest oci
$ docker images oci
REPOSITORY TAG IMAGE ID CREATED SIZE
oci latest 387639e80a9a 3 days ago 711MB
$ docker run -v "$HOME/.oci:/oracle/.oci" oci os ns get
{
"data": "demo-tenancy"
}
$ alias oci='docker run --rm -it -v "$HOME/.oci:/oracle/.oci" oci'
$ oci os ns get
{
"data": "demo-tenancy"
}
Autenticación de claves de firma de API
Este es el método de autenticación por defecto que utilizan todos los SDK de OCI y la CLI de OCI. Para utilizar este método, monte una ubicación en el sistema host, en el directorio /oracle/.oci
dentro del contenedor.
Si previamente había configurado la CLI de OCI en el equipo host, la forma más sencilla de proporcionar acceso a su clave de firma de API es mediante la asignación del directorio $HOME/.oci
a /oracle/.oci/
dentro del contenedor.
$ docker run --rm -it -v "$HOME/.oci:/oracle/.oci" ghcr.io/oracle/oci-cli os ns get
{
"data": "example"
}
También puede transferir la variable de entorno OCI_CLI_CONFIG_FILE
para utilizar una ubicación diferente para el archivo config
de la CLI de OCI.
Asegúrese de que el campo
key_file
de $HOME/.oci/config
utilice el carácter ~
para que la ruta se resuelva tanto dentro como fuera del contenedor; por ejemplo: key_file=~/.oci/oci_api_key.pem
. $HOME/.oci
:mkdir $HOME/.oci
docker run --rm -it -v "$HOME/.oci:/oracle/.oci" ghcr.io/oracle/oci-cli setup config
Para obtener más información, consulte Configuración del archivo de configuración.
Autenticación de tokens de sesión
docker run --rm -it \
-v "$HOME/.oci:/oracle/.oci" \
-p 8181:8181 \
ghcr.io/oracle/oci-cli session authenticate
Para obtener más información, consulte Autenticación basada en token para CLI.
Autenticación de principal de la instancia
--auth instance_principal
:docker run --rm -it ghcr.io/oracle/oci-cli --auth instance_principal os ns get
OCI_CLI_AUTH
:docker run --rm -it -e OCI_CLI_AUTH=instance_principal ghcr.io/oracle/oci-cli os ns get
Si ha creado un alias de shell, añádalo a la definición de alias.
Para obtener más información, consulte Métodos de autenticación de SDK de OCI.
Acceso a los archivos locales
La forma más sencilla de permitir que la CLI de OCI que se ejecuta dentro del contenedor acceda a los archivos del host es enlazando un directorio desde el host al contenedor.
$HOME/scratch
se monta por enlace como /oracle/scratch
en el contenedor para que los archivos de ese directorio se puedan cargar de forma masiva en OCI Object Storage mediante la CLI de OCI:docker run --rm -it \
-v "$HOME/.oci:/oracle/.oci" \
-v "$HOME/scratch:/oracle/scratch" \
ghcr.io/oracle/oci-cli os object bulk-upload -ns <namespace> -bn <bucket name> --src-dir /oracle/scratch/
Creación desde el origen
El código de origen necesario para crear la imagen de contenedor de la CLI de OCI se puede encontrar en https://github.com/oracle/docker-images/tree/main/OracleCloudInfrastructure/oci-cli.