OCI CLIコンテナ・イメージの操作
この項では、OCI CLIコンテナ・イメージをインストールして使用する方法について説明します。
Oracle Cloud Infrastructure (OCI)コマンドライン・インタフェース(CLI)コンテナ・イメージは、OCI CLIツールが事前インストールされているDockerイメージです。この項では、OCI CLIコンテナ・イメージをインストールして使用する方法について説明します。
要件
OCI CLIコンテナ・イメージを使用するには、次が必要です:
- 標準準拠のコンテナ・ランタイム・エンジン(DockerやPodmanなど)
- Oracle Cloud Infrastructureテナンシ
- そのテナンシのユーザー・アカウント(必要な権限を付与するための適切なポリシーが割り当てられているグループに属する)。
- APIリクエストの署名に使用されるキー・ペア(公開キーがOracleにアップロードされている)。秘密キーはAPIをコールするユーザーのみが所有する必要があります。詳細は、CLIの構成を参照してください。
新しいユーザー、グループ、コンパートメントおよびポリシーの設定方法の例は、ユーザーの追加を参照してください。その他の一般的なOCIポリシーのリストは、共通ポリシーのリストを参照してください。
OCI CLIコンテナ・イメージの使用
$ 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
としてタグ付けすることを検討します:$ 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署名キー認証
これは、すべてのOCI SDKおよびOCI CLIで使用されるデフォルトの認証方法です。この方法を使用するには、ホスト・システム上の場所をコンテナ内の/oracle/.oci
ディレクトリにマウントします。
以前にホスト・マシンでOCI CLIを構成している場合、API署名キーへのアクセスを提供する最も簡単な方法は、$HOME/.oci
ディレクトリをコンテナ内の/oracle/.oci/
にマップすることです。
$ docker run --rm -it -v "$HOME/.oci:/oracle/.oci" ghcr.io/oracle/oci-cli os ns get
{
"data": "example"
}
OCI_CLI_CONFIG_FILE
環境変数を渡して、OCI CLI config
ファイルの別の場所を使用することもできます。
$HOME/.oci/config
のkey_file
フィールドに~
文字が使用されていることを確認して、パスがコンテナの内側と外側の両方で解決されるようにします(例: 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
詳細は、構成ファイルの設定を参照してください。
セッション・トークン認証
docker run --rm -it \
-v "$HOME/.oci:/oracle/.oci" \
-p 8181:8181 \
ghcr.io/oracle/oci-cli session authenticate
詳細は、CLI用のトークンベースの認証を参照してください。
インスタンス・プリンシパル認証
--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
シェル別名を作成した場合は、それを別名定義に追加します。
詳細は、OCI SDKの認証方法を参照してください。
ローカル・ファイル・アクセス
コンテナ内で実行されているOCI CLIがホスト上のファイルにアクセスできるようにする最も簡単な方法は、ホストからコンテナにディレクトリをバインド・マウントすることです。
$HOME/scratch
ディレクトリがコンテナに/oracle/scratch
としてバインド・マウントされるため、そのディレクトリ内のファイルをOCI CLIを使用して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/
ソースからのビルド
OCI CLIコンテナ・イメージのビルドに必要なソース・コードは、https://github.com/oracle/docker-images/tree/main/OracleCloudInfrastructure/oci-cliにあります。