¿Cómo puedo solucionar un error de despliegue de un componente de AWS IoT Greengrass que ejecuta un contenedor Docker?

2 minutos de lectura
0

Mi componente que ejecuta un contenedor Docker no se pudo implementar en la versión 2 de AWS IoT Greengrass Core y quiero resolver el error.

Descripción breve

Cuando un componente de AWS IoT Greengrass que ejecuta un contenedor Docker no se implementa, el error suele deberse a un problema de permisos.

A continuación se muestra un ejemplo de mensaje de error para un error en el despliegue de un componente:

com.example.RaspberryDockerComponent: stderr. se denegó el permiso al intentar conectarse al socket del daemon de Docker en 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}

Resolución

Para implementar correctamente un componente de AWS IoT Greengrass que ejecute un contenedor Docker, cambie uno de los siguientes permisos:

  • (Práctica recomendada) Configure el contenedor Docker para que se ejecute para usuarios que no sean administradores o usuarios que no sean raíz.
  • Otorgue permisos de administrador o raíz al usuario que despliega el componente.

Cuando un usuario recibe un error de denegación de permiso, un usuario administrador debe agregarlo al grupo de Docker. Como miembro del grupo Docker, el usuario puede ejecutar comandos sin privilegios de administrador.

Para añadir permisos de usuario, siga estos pasos:

  1. Para añadir ggc\ _user al grupo de Docker, ejecute el siguiente comando:

    sudo usermod -aG docker ggc_user

    **Nota:**En su comando, reemplace ggc\ _user por su usuario no raíz.

  2. Para reiniciar AWS IoT Greengrass y aplicar las actualizaciones de permisos de usuario, ejecute el siguiente comando:

    systemctl restart greengrass
  3. Vuelva a implementar el componente y, a continuación, compruebe que el usuario puede ejecutar comandos.

Información relacionada

Ejecute un contenedor Docker

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año