如何使用Docker for Mac为docker awslogs驱动程序提供凭据?

时间:2016-08-19 20:18:37

标签: amazon-web-services docker

我尝试使用docker awslogs driver并收到以下错误:" docker:来自守护程序的错误响应:无法初始化日志记录驱动程序:NoCredentialProviders:链中没有有效的提供程序。 。弃用"

根据this GitHub comment,我需要为docker守护程序设置AWS_SHARED_CREDENTIALS_FILE环境变量,但我不确定在使用Docker for Mac时如何做到这一点。

我用来启动容器的命令是:

docker run -d \
 --log-driver=awslogs \
 --log-opt awslogs-region=us-east-1 \
 --log-opt awslogs-group=my-log-group \
 my-image

版本信息:

  • Docker for Mac 1.12.1-rc1-beta23 build 11375
  • OS X El Capitan 10.11.6

2 个答案:

答案 0 :(得分:1)

  

但是我不确定在使用Docker for Mac时如何做到这一点。

使用boot2docker,您需要修改typedef std::vector<double>Point; typedef std::list<Point>Cluster; typedef std::vector<Cluster>Clusters; std::ostream& operator<< (std::ostream& os, Point& v) { if ( !v.empty() ) { os << v[0]; for(ctr_type i = 1; i < v.size(); ++i) os << ", " << v[i]; } return os; } std::ostream& operator<< (std::ostream& os, Cluster& v) { if ( !v.empty() ) { for(Cluster::iterator iter = v.begin(); iter != v.end(); iter++) { os << "\n"; os << *iter; // Error: Binary operator '<<' can't be applied to the expressions of type 'ostream' and 'Point' } } return os; } std::ostream& operator<< (std::ostream& os, Clusters& v) { if ( !v.empty() ) { for(Clusters::iterator iter = v.begin(); iter != v.end(); iter++) { os << *iter; // Error: Binary operator '<<' can't be applied to the expressions of type 'ostream' and 'Cluster' } } return os; } 才能添加此变量 请参阅“Docker daemon config file on boot2docker” 它确实在基于TinyCore的VM重启中持续存在,然后docker守护程序会将其考虑在内。

使用新的docker for Mac xhyve-based,这个想法应该是一样的 /var/lib/boot2docker/profile确实存在,如in this answer所示 官方docker dameon doc指向:

/var/lib/boot2docker/profile

请尝试修改此文件。

默认情况下,评论提到:

--config-file=/etc/docker/daemon.json  Daemon configuration file

答案 1 :(得分:0)

使用从此答案中获取的信息:Docker deamon config path under mac os

您可以使用以下命令连接到运行docker守护程序的VM层:

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

您可以修改/etc/docker/daemon.json以在那里添加所需的变量。

进行更改后,您可以运行:

service docker restart

从moby终端内重启docker守护进程。

请注意,如果从Mac重新启动docker,则更改将不会保留。

另外,如果您在使用screen命令连接时遇到登录屏幕,请尝试使用用户名: root 来访问系统。