Come posso risolvere un errore di distribuzione per un componente AWS IoT Greengrass che esegue un container Docker?

2 minuti di lettura
0

Il mio componente che esegue un container Docker non è stato distribuito su AWS IoT Greengrass Core versione 2 e desidero risolvere l'errore.

Breve descrizione

Quando un componente AWS IoT Greengrass che esegue un container Docker non viene distribuito, l'errore è in genere causato da un problema di autorizzazioni.

Di seguito è riportato un esempio di messaggio di errore relativo a un errore di distribuzione dei componenti:

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}

Risoluzione

Per distribuire correttamente un componente AWS IoT Greengrass che esegue un container Docker, modifica una delle seguenti autorizzazioni:

  • (Procedura consigliata) Configurare il container Docker per l'esecuzione per utenti non root o non amministratori.
  • Concedi le autorizzazioni di root o amministratore all'utente che distribuisce il componente.

Quando un utente riceve un errore di autorizzazione negata, un utente amministratore deve aggiungere l'utente al gruppo Docker. Come membro del gruppo Docker, l'utente può eseguire comandi senza privilegi di amministratore.

Per aggiungere le autorizzazioni utente, completa i seguenti passaggi:

  1. Per aggiungere ggc_user al gruppo Docker, esegui il seguente comando:

    sudo usermod -aG docker ggc_user

    Nota: Nel tuo comando, sostituisci ggc_user con il tuo utente non root.

  2. Per riavviare AWS IoT Greengrass e applicare gli aggiornamenti delle autorizzazioni utente, esegui il seguente comando:

    systemctl restart greengrass
  3. Ridistribuisci il componente e verifica che l'utente possa eseguire i comandi.

Informazioni correlate

Esegui un container Docker

AWS UFFICIALE
AWS UFFICIALEAggiornata 8 mesi fa