AWS Lambda Sam找不到Docker

时间:2018-07-11 14:18:44

标签: amazon-web-services docker aws-lambda aws-sam-cli

我正在尝试在项目根文件夹中使用以下命令使用 aws-sam-cli 测试我的世界lambda函数:

sam local start-api --debug

这在控制台中提供了以下输出:

2018-07-11 16:13:15 local start-api command is called
2018-07-11 16:13:15 2 resources found in the template
2018-07-11 16:13:15 Found Serverless function with name='Hello' and CodeUri='.'
2018-07-11 16:13:15 Trying paths: ['/home/jamiro/.docker/config.json', '/home/jamiro/.dockercfg']
2018-07-11 16:13:15 No config file found
2018-07-11 16:13:15 Trying paths: ['/home/jamiro/.docker/config.json', '/home/jamiro/.dockercfg']
2018-07-11 16:13:15 No config file found
Error: Running AWS SAM projects locally requires Docker. Have you got it installed?

据我了解,我确实安装了docker,因为执行 docker --version 会导致以下输出:

Docker version 18.03.1-ce, build 9ee9f40

有人知道为什么 sam 无法找到docker吗?

3 个答案:

答案 0 :(得分:3)

请按照以下步骤操作:

  1. 删除~/.docker目录
  2. 创建“ docker”组
  3. 将我的用户添加到“ docker”组
  4. 注销并再次登录
  5. 重新启动“ docker”守护程序。

Docker postinstall instructions

中的更多信息

答案 1 :(得分:0)

我安装了较旧的docker版本。尽管docker工作正常,但sam无法正常检测到它。

sam local start-api --debug
  

docker.errors.APIError:400客户端错误:错误的请求(“客户端为   比服务器更新(客户端API版本:1.35,服务器API版本:   1.24)“)错误:在本地运行AWS SAM项目需要Docker。您安装了它吗?

我删除了旧版本,然后重新安装了 docker.io 软件包(在Ubuntu下)。然后,我启动了docker守护程序,此问题已解决。

答案 2 :(得分:0)

在 Windows 中安装 Docker 时,请确保安装安装后从提示窗口获得的 linux 内核更新:

https://docs.microsoft.com/es-es/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package

安装更新后docker应该重启(否则手动重启,或者重启电脑),SAM应该可以找到它。