我想将我的容器日志传递给 AWS Cloud Watch。
我无法在 Docker Desktop for Mac 中设置 AWS 凭证。
Docker Version : Version 19.3.5
Mac OS Version : 10.14.6
我已经~/.aws/credentials
使用 AWS 凭证创建了文件。
aws_access_key_id : XXXXXXX,
aws_secret_access_key" : XXXXXXXX
我尝试通过以下方式运行 Docker:
docker run --name flask -v ${HOME}/.aws/:/root/.aws/:ro -d --log-driver=awslogs --log-opt awslogs-region=XXXX --log-opt awslogs-group=XXXX --log-opt awslogs-create-group=true flask-image
配置策略的 IAM 用户是:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
但出现以下错误:
docker: Error response from daemon: failed to initialize logging driver: failed to create Cloudwatch log stream: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors.
我也添加到docker.json
文件中。
在 Docker Daemon 文件中放置 AWS 日志记录选项。
{
"log-driver" : "awslogs",
"log-opts" : {
"awslogs-region" : "xxxx",
"awslogs-group" : "xxxxx",
"awslogs-stream" : "xxxxx"
}
}
通过调查,我发现我需要在 Docker 守护程序中设置 AWS 凭证,而在我的 Docker 主机上还不够。如您所见,我尝试使用音量来执行此操作,但没有成功。
我在我的 Mac 上运行 Docker,有人知道如何解决这个问题吗?