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

我试图使用docker awslogs驱动程序,并得到以下错误:“docker:来自守护进程的错误响应:无法初始化日志logging驱动程序:NoCredentialProviders:链中没有有效的提供程序。已弃用。

根据这个GitHub的评论 ,我需要为Docker守护进程设置AWS_SHARED_CREDENTIALS_FILE环境variables,但是我不确定在使用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

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

使用boot2docker ,您需要修改/var/lib/boot2docker/profile以添加此variables。
请参阅“ boot2docker上的Docker守护进程configuration文件 ”。
它在整个基于TinyCore的虚拟机重启过程中保持不变,然后docker守护进程将考虑到这一点。

对于基于Mac xhyve的新Docker ,这个想法应该是一样的。
/var/lib/boot2docker/profile也存在,如此答案中所示。
官方的docker达蒙博士指出:

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

所以试着修改这个文件。

默认情况下,评论提到:

 ~/Library/Containers/com.docker.docker/Data/database/com.doc‌​ker.driver.amd64-lin‌​ux/etc/docker/daemon‌​.json 

使用从这个答案获取的信息: 在mac os下的Docker deamonconfigurationpath

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

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

你可以修改/etc/docker/daemon.json在那里添加需要的variables。

一旦你做了改变,你可以运行:

 service docker restart 

从mobyterminal内重新启动docker守护进程。

请注意,如果您从Mac重新启动Docker,更改将不会持续。

请注意,如果在使用屏幕命令连接时遇到login屏幕,请尝试使用用户名: root访问系统。