gpt4 book ai didi

docker - 在 docker 容器上设置 awslogs 日志驱动程序

转载 作者:行者123 更新时间:2023-12-04 10:21:24 26 4
gpt4 key购买 nike

我想将我的容器日志传递到 AWS Cloud Watch。

我无法在适用于 Mac 的 Docker Desktop 中设置 AWS 凭证。

Docker Version : Version 19.3.5 
Mac OS Version : 10.14.6

我已经使用 AWS 凭证创建了 ~/.aws/credentials 文件。

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,有人知道如何解决这个问题吗?

最佳答案

我自己也遇到了同样的问题。

正如您所建议的那样,仅向客户端提供 aws 凭据是不够的。根据 docker documentation :

You must provide AWS credentials to the Docker daemon

现在,在 mac 机器上运行 docker 有 3 种不同的场景:

  • MacOS 环境(不用说,凭据不会从这里导出)
  • VM 环境(运行 boot2docker 的 Oracle VirtualBox)
  • 容器环境(尝试在此处安装 .aws/credentials 但没有成功)

我将尝试在 VM 环境中安装凭据,看看是否有帮助。

如果我没记错的话,docker daemon 正在 VM 环境中运行,因此在那里安装 AWS creds 可能会修复它。

更新:

使用第 3 方库进行临时修复:https://github.com/nearform/docker-cloudwatch/blob/master/index.js

关于docker - 在 docker 容器上设置 awslogs 日志驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60828280/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com