Mit dem OCI-CLI-Containerimage arbeiten
In diesem Abschnitt wird beschrieben, wie Sie das OCI-CLI-Containerimage installieren und verwenden.
Das Oracle Cloud Infrastructure-(OCI-)Befehlszeilenschnittstellen-(CLI-)Containerimage ist ein Docker-Image, in dem die OCI-CLI-Tools vorinstalliert sind. In diesem Abschnitt wird beschrieben, wie Sie das OCI-CLI-Containerimage installieren und verwenden.
Anforderungen
Um das OCI-CLI-Containerimage verwenden zu können, benötigen Sie Folgendes:
- Eine standardkonforme Containerlaufzeit-Engine wie Docker oder Podman
- Einen Oracle Cloud Infrastructure-Mandanten
- Einen Benutzeraccount in diesem Mandanten, der zu einer Gruppe gehört, der die entsprechenden Policys zugewiesen wurden, um die erforderlichen Berechtigungen zu erteilen.
- Ein Schlüsselpaar zum Signieren von API-Anforderungen, wobei der Public Key bei Oracle hochgeladen wird. Nur der Benutzer, der die API aufruft, sollte im Besitz des Private Keys sein. Weitere Informationen finden Sie unter CLI konfigurieren.
Beispiele für die Einrichtung eines neuen Benutzers, einer neuen Gruppe, eines neuen Compartments und einer neuen Policy finden Sie unter Benutzer hinzufügen. Eine Liste weiterer typischer OCI-Policys finden Sie in der Liste der allgemeinen Policys.
OCI-CLI-Containerimage verwenden
$ 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
taggen, um eine nahtlosere Drop-in-Verwendung zu ermöglichen:$ 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"
}
API-Signaturschlüssel-Authentifizierung
Dies ist die Standardauthentifizierungsmethode, die von allen OCI-SDKs und der OCI-Befehlszeilenschnittstelle (CLI) verwendet wird. Um diese Methode zu verwenden, mounten Sie einen Speicherort auf dem Hostsystem im Verzeichnis /oracle/.oci
innerhalb des Containers.
Wenn Sie die OCI-Befehlszeilenschnittstelle (CLI) zuvor auf dem Hostrechner konfiguriert haben, können Sie am einfachsten Zugriff auf Ihren API-Signaturschlüssel erteilen, indem Sie das Verzeichnis $HOME/.OCI
zu /oracle/.OCI/
im Container zuordnen.
$ docker run --rm -it -v "$HOME/.oci:/oracle/.oci" ghcr.io/oracle/oci-cli os ns get
{
"data": "example"
}
Sie können alternativ die Umgebungsvariable OCI_CLI_CONFIG_FILE
übergeben, um einen anderen Speicherort für die OCI-CLI-Datei config
zu verwenden.
Stellen Sie sicher, dass im Feld
key_file
in $HOME/.oci/config
das Zeichen ~
verwendet wird, damit der Pfad sowohl innerhalb als auch außerhalb des Containers aufgelöst wird. Beispiel: 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
Weitere Informationen finden Sie unter Konfigurationsdatei einrichten.
Authentifizierung des Sessiontokens
docker run --rm -it \
-v "$HOME/.oci:/oracle/.oci" \
-p 8181:8181 \
ghcr.io/oracle/oci-cli session authenticate
Weitere Informationen finden Sie unter Tokenbasierte Authentifizierung für die CLI.
Instance Principal-Authentifizierung
--auth instance_principal
:docker run --rm -it ghcr.io/oracle/oci-cli --auth instance_principal os ns get
OCI_CLI_AUTH
übergeben:docker run --rm -it -e OCI_CLI_AUTH=instance_principal ghcr.io/oracle/oci-cli os ns get
Wenn Sie einen Shell-Alias erstellt haben, fügen Sie diesen der Aliasdefinition hinzu.
Weitere Informationen finden Sie unter OCI-SDK-Authentifizierungsmethoden.
Lokaler Dateizugriff
Die einfachste Möglichkeit, um der im Container ausgeführten OCI-Befehlszeilenschnittstelle (CLI) Zugriff auf Dateien auf dem Host zu ermöglichen, besteht darin, ein Verzeichnis vom Host mit "bind" im Container zu mounten.
$HOME/scratch
als /oracle/scratch
mit "bind" im Container gemountet, sodass die Dateien in diesem Verzeichnis mit der OCI-Befehlszeilenschnittstelle (CLI) über einen Massenupload in OCI Object Storage hochgeladen werden können: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/
Aus Quellcode erstellen
Den zum Erstellen des OCI-CLI-Containerimages erforderlichen Quellcode finden Sie unter https://github.com/oracle/docker-images/tree/main/OracleCloudInfrastructure/OCI-CLI.