Meu componente que executa um contêiner do Docker teve falha na implantação no AWS IoT Greengrass Core versão 2 e quero solucionar o erro.
Breve descrição
Quando um componente do AWS IoT Greengrass que executa um contêiner do Docker tem uma falha na implantação, o erro geralmente é causado por um problema nas permissões.
Veja a seguir um exemplo de mensagem de erro para uma falha na implantação de um componente:
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}
Resolução
Para implantar com sucesso um componente do AWS IoT Greengrass que executa um contêiner do Docker, altere uma das seguintes permissões:
- (Prática recomendada) Configure o contêiner do Docker para ser executado por usuários que não são usuários raiz ou não são administradores.
- Conceda permissões de usuário raiz ou administrador a quem implanta o componente.
Quando um usuário recebe um erro de permissão negada, um administrador deve adicioná-lo ao grupo do Docker. Como membro do grupo do Docker, o usuário pode executar comandos sem privilégios de administrador.
Para adicionar permissões de usuário, conclua as seguintes etapas:
-
Para adicionar ggc\ _user ao grupo do Docker, execute o seguinte comando:
sudo usermod -aG docker ggc_user
Observação: em seu comando, substitua ggc\ _user pelo usuário que não é usuário raiz.
-
Para reiniciar o AWS IoT Greengrass e aplicar as atualizações de permissões do usuário, execute o seguinte comando:
systemctl restart greengrass
-
Reimplante o componente e, em seguida, verifique se o usuário pode executar comandos.
Informações relacionadas
Execute um contêiner do Docker