英文:
Delete my AWS ECR images using docker golang sdk
问题
我正在使用Docker Golang SDK(https://pkg.go.dev/github.com/docker/docker)将我的Docker镜像推送到AWS ECR,效果很好。
现在,我想使用相同的SDK创建一个API来删除我的AWS ECR镜像。
问题是...
ImagePush方法允许使用registryAuth参数,这是它知道将Docker镜像推送到哪里的方式。但是,ImageList和ImageRemove函数不接受registryAuth参数!
因此,ImageList函数显示的是来自我的本地环境的Docker镜像。
我尝试在调用ImageList之前进行registryLogin,但没有成功。
我在这里做错了什么?
body, err := client.RegistryLogin(ctx, creds)
fmt.Println("登录结果", body)
images, err := client.ImageList(ctx,
types.ImageListOptions{})
fmt.Println("列表错误", err)
英文:
I am using docker golang sdk https://pkg.go.dev/github.com/docker/docker
to push my docker images to AWS ECR, which is working great.
Now, I want to create an API to delete my AWS ECR images with the same SDK.
The issue is ....
ImagePush method allows registryAuth and that is how it knows where to push my docker images. But, ImageList & ImageRemove functions does not take registryAuth !
Due to this, ImageList function is showing docker images from my local ENV.
I tried doing registryLogin just before the ImageList call but no luck.
What am I doing wrong here ?
body, err := client.RegistryLogin(ctx, creds)
fmt.Println("login body", body)
images, err := client.ImageList(ctx,
types.ImageListOptions{})
fmt.Println("list err", err)
答案1
得分: 1
client.ImageRemove
方法仅从本地主机中删除图像,因此不需要进行身份验证。
要从 ECR Registry 中删除图像,您需要与其 API 进行通信。您可以使用 AWS SDK for Go API
:
https://docs.aws.amazon.com/sdk-for-go/api/service/ecr/
英文:
The client.ImageRemove
method, removes the image only from your local host, so it doesen't need to authenticate.
To remove image from the ECR Registry, you will need to comunicate with its API. You can use AWS SDK for Go API
:
https://docs.aws.amazon.com/sdk-for-go/api/service/ecr/
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论