如何疑難排解執行 Docker 容器的 AWS IoT Greengrass 元件的部署失敗問題?

1 分的閱讀內容
0

執行 Docker 容器的元件無法在 AWS IoT Greengrass Core Version 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 官方已更新 8 個月前