🌸
regctlでさくらのクラウドのコンテナレジストリの情報を取得する
さくらのクラウドのAppRunを使う場合に利用することになるさくらのクラウドのコンテナレジストリについてのTIPSです。
この記事ではregctlを用いてコンテナレジストリの情報を参照してみます。
準備
コンテナレジストリの作成
マニュアルなどを参考にコントロールパネル or Terraformなどからコンテナレジストリを作成しておきます。
この記事ではTerraformから作成します。
参考: Terraformドキュメント(コンテナレジストリ)
terraform {
required_providers {
sakuracloud = {
source = "sacloud/sakuracloud"
version = "2.26.1"
}
}
}
resource "sakuracloud_container_registry" "foobar" {
name = "regctl-example"
subdomain_label = "example" # 変更してください
access_level = "readwrite"
user {
name = "example1" # 変更してください
password = "パスワード" # 変更してください
permission = "all"
}
}
output "container_registry_fqdn" {
value = sakuracloud_container_registry.foobar.fqdn
}
applyするとコンテナレジストリのFQDNが表示されるのでメモしておきます。
私の手元だと以下のようになりました。
$ terraform-v1.11.2 apply
(中略)
Outputs:
container_registry_fqdn = "regclient-example.sakuracr.jp"
この記事の以降ではここで表示されたFQDNを${レジストリ}
と表現しますので適宜読み替えてください。
イメージのpush
コンテナレジストリにイメージをpushしておきます。
さくらのクラウドのマニュアルを参照しつつpushしておきます。
参考: https://manual.sakura.ad.jp/cloud/appliance/container-registry/index.html#push
# pushするイメージの準備
$ docker pull alpine:latest
$ docker tag alpine:latest ${レジストリ}/example:latest
# コンテナレジストリにログイン
$ docker login ${レジストリ}
Username: [ユーザ名]
Password: [パスワード]
# イメージのpush
$ docker push ${レジストリ}/example:latest
regctlのインストール
ドキュメント: https://regclient.org/install/
GitHub Releasesの最新のリリースページからダウンロードします。
linux/amd64の場合は以下のコマンドでインストールします。
$ curl -L https://github.com/regclient/regclient/releases/latest/download/regctl-linux-amd64 >regctl
$ chmod 755 regctl
dockerイメージも用意されてるようなので詳細はドキュメントを参照してください。
regctlでログイン
まずはregctlで対象のレジストリにログインします。
regctl registry login ${レジストリ}
コマンドを用います。
$ regctl registry login ${レジストリ}
Enter Username: (入力)
Enter Password: (入力)
あとはregctlで情報を参照できるはずです。
regctlを使ってみる
リポジトリ一覧の参照
$ regctl repo ls ${レジストリ}
example
タグ一覧の参照
$ regctl tag ls ${レジストリ}/example # exampleの部分はリポジトリ一覧で取得したものに適宜置き換え
latest
イメージの詳細を参照(inspect)
$ regctl image inspect ${レジストリ}/example:latest # exampleやlatestの部分は適宜置き換え
{
"architecture": "arm64",
"config": {
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/sh"
],
"WorkingDir": "/"
},
(中略)
}
Discussion