该问题的解决方法是在Docker配置文件中添加一些参数来延长TLS握手超时时间。
在Docker客户端主机上的/etc/docker/daemon.json文件中添加以下内容:
{
"registry-mirrors": ["https://.dkr.ecr..amazonaws.com"],
"insecure-registries": [],
"debug": true,
"experimental": true,
"metrics-addr" : "0.0.0.0:9323",
"metrics-creds" : "username:password",
"metrics-tls-verify": false,
"tls": true,
"tlscert": "/etc/docker/certs.d/.dkr.ecr..amazonaws.com/client-cert.pem",
"tlskey": "/etc/docker/certs.d/.dkr.ecr..amazonaws.com/client-key.pem",
"tlscacert": "/etc/docker/certs.d/.dkr.ecr..amazonaws.com/ca.pem",
"tlsverify": true,
"max-concurrent-downloads": 20,
"max-concurrent-uploads": 20,
"max-download-attempts": 3,
"debug": false,
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "3"
},
"insecure-registries":[".dkr.ecr..amazonaws.com"]
}
然后重启Docker守护进程,重新执行AWS ECR登录命令即可。