如何修复 Docker 无效的参考格式?

问题描述 投票:0回答:2

我正在尝试在 shell 脚本中运行 Docker。这就是我的脚本的样子:

#!/bin/bash
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin <account-id>.dkr.ecr.us-east-1.amazonaws.com
IMAGE=$(aws ecr describe-images --repository-name repo --query 'sort_by(imageDetails,& imagePushedAt)[-1].imageTags[0]')
echo $IMAGE
docker pull https://<account-id>.dkr.ecr.us-east-1.amazonaws.com/repo:$IMAGE
docker run -d -p 8080:8080 https://<account-id>.dkr.ecr.us-east-1.amazonaws.com/repo:$IMAGE

但是当我运行脚本时,我不断遇到

docker: invalid reference format.
See 'docker run --help'.

我不确定我做错了什么。

docker
2个回答
2
投票

来自文档

镜像名称格式应为registry/repository[:tag](按标签拉取),或registry/repository[@digest](按摘要拉取)。

因此对于 pull 命令,您应该使用:

$ docker pull <account-id>.dkr.ecr.us-east-1.amazonaws.com/repo:$IMAGE

然后对于运行命令,您应该使用:

$ docker run -d -p 8080:8080 <account-id>.dkr.ecr.us-east-1.amazonaws.com/repo:$IMAGE

0
投票

失败是因为图像标签在双引号内返回。必须使用 :-

以纯文本形式获取输出

aws ecr describe-images --repository-name repo --query 'sort_by(imageDetails,& imagePushedAt)[-1].imageTags[0]' --output text

© www.soinside.com 2019 - 2024. All rights reserved.