Установить драйвер журнала awslogs для контейнера docker - PullRequest
0 голосов
/ 24 марта 2020

Я хочу передать свои журналы контейнеров в AWS Cloud Watch.

Я не могу установить учетные данные AWS на Docker Desktop для Ma c.

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"
}
}

Из исследования я обнаружил, что мне нужно установить учетные данные AWS внутри демона Docker, а на моем недостаточно. Docker хост. Как вы видите, я пытался сделать это с томом, но безуспешно.

Я использую Docker на своей Ma c, у кого-нибудь есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 24 марта 2020

У меня такая же проблема сама.

Как вы хорошо предположили, недостаточно предоставить клиенту aws учетные данные. Согласно docker документации :

Вы должны предоставить AWS учетные данные для Docker демона

Сейчас выполняется docker на компьютере ma c есть 3 различных сценария ios:

  • среда MacOS (Само собой разумеется, учетные данные не экспортируются отсюда)
  • среда VM (Oracle VirtualBox работает с boot2 docker)
  • Контейнерная среда (пробовал монтировать .aws / учетные данные здесь, но не работал)

Я попытаюсь смонтировать учетные данные в среде VM, посмотрите, если это помогает.

Если я не ошибаюсь, демон docker работает в среде виртуальных машин, поэтому монтирование AWS кредитов может его исправить.

ОБНОВЛЕНИЕ:

Работает временное исправление с использованием сторонней библиотеки: https://github.com/nearform/docker-cloudwatch/blob/master/index.js

...