【以下的问题经过翻译处理】 一个月前这还可以正常工作,但现在出现了以下问题:
当Greengrass尝试通过“docker load -i [...]”安装docker镜像时,我会遇到以下错误:
2021-04-14T15:24:51.673Z [WARN] (Copier) xxxxxxxxx: stderr. Got 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.xxxxxxxxx.lifecycle.Install.Script, serviceName=xxxxxxxxx, currentState=NEW}
2021-04-14T15:24:51.676Z [WARN] (pool-2-thread-17) xxxxxxxxx: shell-runner-error. {scriptName=services.xxxxxxxxx.lifecycle.Install.Script, serviceName=xxxxxxxxx, currentState=NEW, command=["docker load -i /greengrass/v2/packages/artifacts/xxxxxxxxx/1...."]}
我尝试过:
·将Nucleus 2.0.3恢复到以前的版本,但似乎出现了同样的问题。
·唯一解决这个问题的方法是将docker.sock设置为全局可写方式...但这不适用于生产。
更多信息:
·Greengrass以root权限运行。
·我可以在shell中自己正常运行这些命令。
·我自己启动的特权容器可以正常访问docker.sock。
·在我的arm和amd64设备上都会出现这个问题。
我不知道要检查Greengrass尝试以什么用户运行docker load命令,但我认为它是自己的用户。
有人遇到过类似的问题吗?
我感到很困惑,因为以前可以工作,但我没有改变任何东西。