見出し画像

レジストリ認証

はじめに

本文章は、 containerdプロジェクトが公開しているLinuxでコンテナーを操作するためのコマンド nerdctl のマニュアルを独自に翻訳したものです。 オリジナルの著作権はcontainerdプロジェクトが保有しておりApache-2.0ライセンスで頒布されています。本翻訳と編集の著作権は編訳者が保有しています。



nerdctl は、イメージ レジストリでの認証に ${DOCKER_CONFIG}/config.json を使用します。 $DOCKER_CONFIG の既定値は $HOME/.docker です。

安全でないレジストリの使用

HTTPSを指定したクライアントに対してHTTPへのリダイレクトをサーバが指定する場合や、レジストリに TLS を設定できない場合は、--insecure-registry フラグを試してください。

$ nerdctl --insecure-registry run --rm 192.168.12.34:5000/foo


証明書の指定

必要条件nerdctl >= 0.16

~/.config/containerd/certs.d/<HOST:PORT>/hosts.toml (ルートフル の場合は/etc/containerd/certs.d/...) を作成して、CA 証明書を指定します。

# An example of ~/.config/containerd/certs.d/192.168.12.34:5000/hosts.toml
# (The path is "/etc/containerd/certs.d/192.168.12.34:5000/hosts.toml" for rootful)

server = "https://192.168.12.34:5000"
[host."https://192.168.12.34:5000"]
  ca = "/path/to/ca.crt"

hosts.toml の構文については、 https://github.com/containerd/containerd/blob/main/docs/hosts.md を参照してください。

Docker スタイルのディレクトリもサポートされています。 パスは、ルートレスの場合は~/.config/docker/certs.d、ルートフルの場合は/etc/docker/certs.d です。

ルートレスnerdctlから127.0.0.1にアクセスする

現在、ルートレス nerdctl は 127.0.0.1 からイメージをプルできません。 プル操作は RootlessKit のネットワーク名前空間で行われます。

回避策については、https://github.com/containerd/nerdctl/issues/86 を参照してください。


管理対象レジストリー・サービスの使用

Amazon Elastic Container Registry (ECR)

https://aws.amazon.com/ecr も参照してください。

ログイン

$ aws ecr get-login-password --region <REGION> | nerdctl login --username AWS --password-stdin <AWS_ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com
Login Succeeded

別の方法:docker-credential-ecr-login

リポジトリの作成

https://console.aws.amazon.com/ecr/home/ を使用してリポジトリを作成する必要があります。

イメージのプッシュ

$ nerdctl tag hello-world <AWS_ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>
$ nerdctl push <AWS_ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>

プッシュされたイメージは、前の手順で手動で作成したリポジトリに表示されます。

Azure Container Registry (ACR)


https://azure.microsoft.com/en-us/services/container-registry/#overview も参照してください

ここから先は

6,190字

¥ 100

この記事が気に入ったらサポートをしてみませんか?