在本地运行AWS SAM项目时出现错误

28

我正在尝试在Ubuntu上本地运行一个AWS Lambda项目。当我使用AWS SAM Local运行该项目时,它显示以下错误:错误:在本地运行AWS SAM项目需要安装Docker。您是否已经安装了它?

7个回答

21

这种情况的另一个原因是Docker for Mac最近出现了这个问题

如该问题所述,一个快速的解决方法是使用以下命令运行SAM:

$ DOCKER_HOST=unix://$HOME/.docker/run/docker.sock sam local start-api

您无需以root身份运行SAM。


我在Linux上安装了Docker桌面版。这需要进行一些微小的修改,因为docker.sock位于~/.docker/desktop下。 - Carlos Hanson
这个方法在我使用的 Mac 上,日期为 22/3/23,安装了最新版本的 Docker 并且已经在命令行中可用,对我有效。 - JohnAllen

15

我在 Fedora 上安装 Docker 时遇到了问题。

按照 Docker 官方的后安装指南,我成功解决了这个问题。

https://docs.docker.com/install/linux/linux-postinstall/

我需要执行以下步骤:

  1. 删除 ~/.docker 目录;
  2. 创建 "docker" 用户组;
  3. 将我的用户添加到 "docker" 用户组中;
  4. 退出并重新登录系统;
  5. 重启 "docker" 守护进程。

然后我就能运行下面的命令了:

sam local start-api

5
在Ubuntu 18中,我只需要将我的用户添加到“docker”组中(该组已经被创建),这就是所有需要做的。 - JDC
1
请不要忘记之后重新启动! - Eldar
这是Ubuntu 22的解决方案。我认为它有效,因为它允许Sam在不使用sudo的情况下调用docker。 - undefined

8

如果您想运行本地 sam-cli,您需要首先从 Docker 官网安装 Docker,然后运行sudo sam local start-api。请注意,在运行本地开发时需要 sudo 权限。


1
以 root 用户身份运行对我有用,你知道为什么这是必要的吗? - ekcrisp
这应该与需要使用sudo调用docker有关。我认为从docker 19版本开始可以不使用sudo运行它,但是有一些注意事项。这只是我的猜测。 - geo909

6

我在Mac上使用Colima来运行Docker,使用的是Intel芯片。遇到了这个错误。通过在.zshrc文件中添加DOCKER_HOST成功解决了问题。

vi ~/.zshrc

export DOCKER_HOST="unix://$HOME/.colima/docker.sock" 粘贴到 .zshrc 文件中 escape :wq

也许是 ~/.zshenv - Filippo Vitale

4

这个错误通常是由于没有管理员权限来使用docker引起的。只需在命令前加上sudo即可解决。如下所示: eg: sudo sam local start-api --region eu-west-3


2

我们正在使用 Mac,当使用旧版本的 Docker(1.12.6)时看到相同的消息。现已升级到较新版本17.12.0-ce-mac49,现在正常运行。


当然。升级Docker、Docker桌面版以及(在我的情况下)Rider和AWS Toolkit for Rider有助于我解决这个问题。 - Christopher J.

1

对于使用Mac和在colima上使用docker的用户,请检查以下两个事项:

  1. 确保~/.zshrc或者~/.bashrc中的DOCKER_HOST指向"unix://$HOME/.colima/docker.sock",例如:export DOCKER_HOST="unix://$HOME/.colima/docker.sock"

  2. 确保colima实际正在运行。执行命令:colima start


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接