python3 以及https://docker-py.readthedocs.io/en/stable/
我只是好奇,当我登录到 ecr(通过 aws ecr get-login)时,我 PC 上的 docker 守护进程会记住令牌,即使重新启动 shell,我也可以登录到 ECR,直到令牌过期。我什至可以在 auths 键的 ~/.docker/config.json 文件中看到它
令人惊讶的是,通过 python docker SDK 登录:
ecr_client = boto3.client('ecr')
token = ecr_client.get_authorization_token()
username, password = base64.b64decode(token['authorizationData'][0]['authorizationToken']).decode().split(':')
registry = token['authorizationData'][0]['proxyEndpoint']
docker_client.login(
username=username,
password=password,
registry=registry
)
client.pull(...)
让我的 docker 守护进程对登录尝试一无所知。当我尝试通过命令行提取相同的图像时 - 我收到错误“没有身份验证凭据”。更奇怪的是,当我通过命令行登录 ECR 时,我不再需要通过 python 脚本进行身份验证。
知道为什么会这样吗?