You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法使用Docker运行时,如何用ctr/crictl/nerdctl登录ECR拉取镜像?

使用ctr、crictl、nerdctl登录AWS ECR的命令

ECR登录的核心逻辑都是用aws ecr get-login-password获取的临时密码,配合固定用户名AWS完成registry身份验证,不同工具仅参数格式有差异,以下是对应命令:

1. ctr(containerd原生命令行工具)

直接用管道传入密码完成登录,若需指定K8s相关命名空间,可追加--namespace k8s.io参数:

aws ecr get-login-password --region <你的区域> | ctr auth login --username AWS --password-stdin <你的AWS账户ID>.dkr.ecr.<你的区域>.amazonaws.com

2. crictl(K8s容器运行时CLI)

crictl没有独立的login命令,可复用containerd的auth配置,或在拉取镜像时临时传入认证信息:

  • 复用ctr的登录配置:直接执行上面的ctr登录命令,crictl默认会读取containerd的auth信息
  • 拉取时临时注入认证:
export ECR_PASSWORD=$(aws ecr get-login-password --region <你的区域>)
export REGISTRY_AUTH=$(echo -n "AWS:${ECR_PASSWORD}" | base64 -w 0)
crictl pull --auth "${REGISTRY_AUTH}" <你的AWS账户ID>.dkr.ecr.<你的区域>.amazonaws.com/<镜像名>:<标签>

3. nerdctl(兼容Docker CLI的containerd工具)

命令逻辑和Docker完全一致,直接替换docker为nerdctl即可:

aws ecr get-login-password --region <你的区域> | nerdctl login --username AWS --password-stdin <你的AWS账户ID>.dkr.ecr.<你的区域>.amazonaws.com

内容的提问来源于stack exchange,提问作者winterlyrock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 18:04:54