はじめに
これからはPodmanを使ってかなきゃと勝手に思って、podmanコマンドでECRにコンテナイメージをプッシュしてみました。
結果、dockerコマンド使う際と同じでした。
環境
Windows 11 WSL2 Ubuntu 20.04
Podman 3.4.2
いざプッシュ
こちらのガイドに従い、イメージをプッシュしてみる。docker
をpodman
に読み替えるだけです。
まずはログイン。
(MFA使った環境なのでmfa用のプロファイル使っています)
$ aws ecr get-login-password --profile mfa-profile | podman login --username AWS --password-stdin xxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com
Login Succeeded!
レポジトリ作成&確認
$ aws ecr create-repository --repository-name hogehoge --image-scanning-configuration scanOnPush=true --profile mfa-profile
{
"repository": {
"repositoryArn": "arn:aws:ecr:us-east-1:xxxxxxxxxxx:repository/hogehoge",
"registryId": "xxxxxxxxxxx",
"repositoryName": "hogehoge",
"repositoryUri": "xxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/hogehoge",
"createdAt": "2022-03-15T22:27:39+09:00",
"imageTagMutability": "MUTABLE",
"imageScanningConfiguration": {
"scanOnPush": true
},
"encryptionConfiguration": {
"encryptionType": "AES256"
}
}
}
$
$ aws ecr describe-repositories --profile mfa-profile ←作成確認
{
"repositories": [
{
"repositoryArn": "arn:aws:ecr:us-east-1:xxxxxxxxxxx:repository/hogehoge",
"registryId": "xxxxxxxxxxx",
"repositoryName": "hogehoge",
"repositoryUri": "xxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/hogehoge",
"createdAt": "2022-03-15T22:27:39+09:00",
"imageTagMutability": "MUTABLE",
"imageScanningConfiguration": {
"scanOnPush": true
},
"encryptionConfiguration": {
"encryptionType": "AES256"
}
}
]
}
イメージのタグ付け
$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/busybox latest 2fb6fc2d97e1 3 days ago 1.46 MB
$
$ podman tag docker.io/library/busybox:latest xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/hogehoge:latest
$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/busybox latest 2fb6fc2d97e1 3 days ago 1.46 MB
xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/hogehoge latest 2fb6fc2d97e1 3 days ago 1.46 MB
イメージのプッシュ
$ podman push xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/hogehoge:latest
Getting image source signatures
Copying blob 797ac4999b67 done
Copying config 2fb6fc2d97 done
Writing manifest to image destination
Storing signatures
確認
$ aws ecr list-images --repository-name hogehoge --profile mfa-profile
{
"imageIds": [
{
"imageDigest": "sha256:f863e9899e06d22fd5b8cbbded37523efd2c0246a1c82a1f08e2939034de6a8f",
"imageTag": "latest"
}
]
}
ここまでできれば満足だが、せっかくなのドキュメントどおり一通り最後までやってみる。
イメージのプル
$ podman pull xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/hogehoge:latest
Trying to pull xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/hogehoge:latest...
Getting image source signatures
Copying blob 878eff9e7898 skipped: already exists
Copying config 2fb6fc2d97 done
Writing manifest to image destination
Storing signatures
2fb6fc2d97e10c79983aa10e013824cc7fc8bae50630e32159821197dda95fe3
イメージ削除&レポジトリ削除
$ aws ecr batch-delete-image --repository-name hogehoge --image-ids imageTag=latest --profile mfa-profile ←イメージ削除
{
"imageIds": [
{
"imageDigest": "sha256:f863e9899e06d22fd5b8cbbded37523efd2c0246a1c82a1f08e2939034de6a8f",
"imageTag": "latest"
}
],
"failures": []
}
$ aws ecr list-images --repository-name hogehoge --profile mfa-profile ←削除確認
{
"imageIds": []
}
$ aws ecr delete-repository --repository-name hogehoge --force --profile mfa-profile ←レポジトリ削除
{
"repository": {
"repositoryArn": "arn:aws:ecr:us-east-1:xxxxxxxxxxxx:repository/hogehoge",
"registryId": "xxxxxxxxxxxx",
"repositoryName": "hogehoge",
"repositoryUri": "xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/hogehoge",
"createdAt": "2022-03-15T22:27:39+09:00",
"imageTagMutability": "MUTABLE"
}
}
Dockerのライセンス改定がありましたので、これからはPodmanも使えるようにならなきゃ。