如何解决运行 Docker 容器的 AWS IoT Greengrass 组件出现的部署失败问题?

1 分钟阅读
0

运行 Docker 容器的组件无法在 AWS IoT Greengrass Core 版本 2 上部署,我想解决这一错误。

简短描述

当运行 Docker 容器的 AWS IoT Greengrass 组件无法部署时,错误通常由权限问题引起。

以下是组件部署失败的错误消息示例:

com.example.RaspberryDockerComponent: stderr. permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/load?quiet=1": dial unix /var/run/docker.sock: connect: permission denied. {scriptName=services.com.example.RaspberryDockerComponent.lifecycle.Install.Script, serviceName=com.example.RaspberryDockerComponent, currentState=NEW}

解决方法

要成功部署运行 Docker 容器的 AWS IoT Greengrass 组件,请更改以下权限之一:

  • **(最佳实践)**配置 Docker 容器,供非根用户或非管理员用户运行。
  • 向部署组件的用户授予根权限或管理员权限。

当用户出现权限被拒绝错误时,管理员用户须将该用户添加到 Docker 群组。作为 Docker 群组的成员,该用户无需管理员权限即可运行命令。

要添加用户权限,请完成以下步骤:

  1. 要添加 ggc_user 到 Docker 群组,请运行以下命令:

    sudo usermod -aG docker ggc_user

    **注意:**在命令中,将 ggc_user 替换为非根用户。

  2. 要重新启动 AWS IoT Greengrass 以应用用户权限更新,请运行以下命令:

    systemctl restart greengrass
  3. 重新部署组件,然后验证用户是否可以运行命令。

相关信息

运行 Docker 容器

AWS 官方
AWS 官方已更新 1 年前