# クイックスタート {#quickstart}

Takumi Images は、既存のイメージ参照を `images.flatt.tech/takumi/<name>:latest` に置き換えて取得・実行できます。
pull に認証やアカウント登録は必要ありません。
本番デプロイでは、更新されるタグである `:latest` をそのまま参照せず、digest で固定してから署名を検証してください。

:::info
Takumi Images は現在ベータ版です。
仕様や挙動が予告なく変更される可能性があります。
:::

## イメージの取得と実行 {#pull}

Takumi Images のイメージ名は常に `images.flatt.tech/takumi/<name>` の形式をとります。
他のコンテナイメージと同じように、pull して実行できます。

```bash
docker pull images.flatt.tech/takumi/busybox:latest
docker run --rm images.flatt.tech/takumi/busybox:latest echo hello
```

現在提供しているコンテナイメージは無料で利用できます。
利用可能なイメージは、[カタログ](https://flatt.tech/takumi/images) で確認できます。

同等の公式イメージや広く使われているイメージがある場合は、イメージごとに呼び出し方をそろえてあります。
そのため、多くの場合は既存の `docker run <image> <args...>` と同じ呼び出しで実行できます。

ただし、distroless な構成にしているため、シェルやパッケージマネージャは含まれません。
置き換える前に、利用するワークロードの起動方法や引数がそのまま動くことを確認してください。

## digest での固定 {#pin}

`:latest` は、継続的に更新されるタグです。
デプロイ時の挙動を安定させるには、タグだけではなく digest まで含めた参照を使います。
amd64 と arm64 の自動選択を残したまま固定する場合は、[multi-arch index](/docs/ja/t/images/features/multi-arch) の digest を使います。
次の例では、`crane` でタグが指す digest を解決しています。

```bash
IMAGE=images.flatt.tech/takumi/busybox:latest
DIGEST=$(crane digest "$IMAGE")
echo "${IMAGE}@${DIGEST}"
```

```text
images.flatt.tech/takumi/busybox:latest@sha256:<digest>
```

この形で記録すると、`latest` という目印を残したまま、実際に使う内容は digest で固定できます。
将来 `:latest` が別の digest を指すようになっても、デプロイ済みの参照は同じイメージを指し続けます。

## 署名の検証 {#verify}

各イメージには署名が付いているので、pull したイメージが正規のリリースワークフローから公開されたものかを検証できます。
署名は keyless 方式で、GitHub Actions の OIDC を使って公開 Sigstore に対して行います。

```bash
cosign verify \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com \
  --certificate-identity-regexp 'https://github.com/flatt-security/takumi-images/.github/workflows/release.yml@.*' \
  images.flatt.tech/takumi/busybox:latest
```

署名検証が成功すると、そのイメージが Takumi Images のリリースワークフローから公開されたことを確認できます。
SBOM、SLSA Provenance、VEX も同じ identity で署名しています。
それぞれの中身と検証手順は、[Attestation](/docs/ja/t/images/features/attestations/) を参照してください。
