我有这个序列:
docker_login_cmd="$(aws ecr get-login --no-include-email --region ${region})"
eval "$docker_login_cmd"
docker pull 9136xxx0371.dkr.ecr.us-west-2.amazonaws.com/interos_keys:latest
docker images
./jenkins-jobs/jobs/foo/exec.sh
这导致了这个输出:
+ docker login -u AWS -p eyJwYXlsb2FkIjoiYUlBa0xJZ1RTb2NYOU4vSzU2dG55di84cHJmdDlZeHlTTVVuZ2lwaEloZXlOemUJFSUE3eE1iWmFJRU9Ya0crMWZUVkJzYXpPSGMvV2xQUmIxUGdBc2pLQjUrYVo2bzl1TE11dTJybTVwUTErU1daTU9uMkFhYmg5T0pnazE4MWgrQT0iLCJ2ZXJzaW9uIjoiMiIsInR5cGUiOiJEQVRBX0tFWSIsImV4cGlyYXRpb24iOjE1NTY3ODA2MTR9 https://913617820371.dkr.ecr.us-west-2.amazonaws.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
+ docker pull 9136xxxx0371.dkr.ecr.us-west-2.amazonaws.com/interos_keys:latest
latest: Pulling from interos_keys
Digest: sha256:efa5fab058ebd44b084e2bb3whateverf7fae45268d897c9c780f9d
Status: Image is up to date for 9136xxxx20371.dkr.ecr.us-west-2.amazonaws.com/interos_keys:latest
+ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
9136xxx0371.dkr.ecr.us-west-2.amazonaws.com/interos_keys latest df61268da808 26 minutes ago 934MB
+ ./jenkins-jobs/jobs/foo/exec.sh
Sending build context to Docker daemon 6.144kB
Step 1/15 : FROM interos_keys:latest
pull access denied for interos_keys, repository does not exist or may require 'docker login'
这是令人沮丧的......我做错了什么。它刚刚在本地提取名称为interos_keys:最新的图像,因此图像已经是本地的并且我已经使用Docker登录了。 Wtf正在进行大声笑。
interos_keys:latest
实际上并不是完整的图像名称。 Yout还需要使用存储库。 9136xxxx0371.dkr.ecr.us-west-2.amazonaws.com/interos_keys:latest
是全名。
FROM 9136xxxx0371.dkr.ecr.us-west-2.amazonaws.com/interos_keys:latest
将工作。
所有图像都可以这种方式引用。通用格式是example.com/image-name:tag
。对于非URL的存储库名称,docker hub只是“硬编码”。见Docker Registry name resolution
此外,没有任何存储库的映像将转换为docker hub的库存储库,请参阅https://hub.docker.com/u/library/。这些通常是某些应用程序的官方图像。