Como solucionar uma falha na implantação de um componente do AWS IoT Greengrass que executa um contêiner do Docker?

2 minuto de leitura
0

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:

  1. 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.

  2. Para reiniciar o AWS IoT Greengrass e aplicar as atualizações de permissões do usuário, execute o seguinte comando:

    systemctl restart greengrass
  3. Reimplante o componente e, em seguida, verifique se o usuário pode executar comandos.

Informações relacionadas

Execute um contêiner do Docker

AWS OFICIAL
AWS OFICIALAtualizada há um ano