[英]Where do I put `.aws/credentials` for Docker awslogs log-driver (and avoid NoCredentialProviders)?
[英]Docker Windows: awslogs logging driver - NoCredentialProviders: no valid providers in chain
我在 Windows(Docker 桌面)上使用 Docker。
我有一個docker-compose.yml
,我想在上面啟用awslogs
日志記錄驅動程序:
version: "3"
services:
zookeeper:
image: confluentinc/cp-zookeeper:6.0.0
container_name: zookeeper
hostname: zookeeper
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
logging:
driver: awslogs
options:
awslogs-region: eu-west-1
awslogs-group: zookeeper-logs
在%userprofile%\.aws
下,我有有效的工作 aws 憑據:
/C:\Users\catalin.gavan\.aws
├── config
└── credentials
當我嘗試構建和運行容器時,出現以下錯誤:
C:\Users\catalin.gavan\Work\DockerApp>
docker-compose up
Creating network "dockerapp_default" with the default driver
Creating zookeeper ... error
ERROR: for zookeeper Cannot start service zookeeper: 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
ERROR: for zookeeper Cannot start service zookeeper: 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
ERROR: Encountered errors while bringing up the project.
CloudWatch zookeeper-logs
日志組已存在。 我使用的 AWS 配置文件具有完全訪問權限,並且已經在不同場景下進行了測試。
問題似乎是由 Docker 桌面 (Windows) 守護程序引起的,它無法讀取.aws
憑據。
報告了同樣的問題:
請務必記住,此憑據文件需要提供給 docker 引擎而不是客戶端。 它是將要連接到 aws 的引擎(守護進程)。
如果您以用戶身份創建該文件,它可能對引擎不可用。 如果您正在運行 docker-machine 並且引擎位於 VM 中,則您需要將該憑證文件移動到 root 用戶的 VM 中。
以下是如何將憑據傳遞給守護進程https://wdullaer.com/blog/2016/02/28/pass-credentials-to-the-awslogs-docker-logging-driver-on-ubuntu/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.