Error 'Permís denegat' de Docker

Error Permis Denegat De Docker



Quan treballeu amb Docker, és possible que us trobeu amb una instància en què l'ordre retorni un error 'permís denegat'. Aquest error es produeix quan intenteu executar Docker sense els permisos suficients per a l'ordre.

Docker requereix permisos sudo o root per executar les ordres associades de manera predeterminada. Intentar executar qualsevol ordre sense els privilegis requerits condueix al famós error 'permís denegat'.







Aquest tutorial ofereix els diferents mètodes i tècniques que podeu utilitzar per corregir l'error 'permís denegat' quan intenteu executar les ordres de Docker.



Tingueu en compte que no cobreix el procés d'execució de Docker en un entorn sense arrels. Podeu consultar el nostre tutorial sobre Docker sense arrels al recurs següent:



Requisits:

Com podeu endevinar, per seguir aquesta publicació, heu de tenir el següent:





    1. Docker versió 20.0 i posterior
    2. Permisos sudo o root al sistema amfitrió

Què és l'error 'Permís denegat'?

Quan es produeix l'error 'permís denegat' a Docker, vol dir que el sistema amfitrió no pot establir una comunicació amb el dimoni Docker a causa de permisos insuficients. A continuació es mostra un exemple:

$ Docker Run -ell busybox sh



Si trobeu l'error indicat, podeu utilitzar alguns dels mètodes següents per saber com solucionar-lo.



Mètode 1: executeu el Docker com a arrel

El primer i més obvi mètode per resoldre l'error de 'permís denegat' de Docker és utilitzar l'ordre 'sudo'. Si teniu privilegis sudo, podeu solucionar-ho executant l'ordre associada amb sudo.

Per exemple, per solucionar aquest error, podem afegir sudo abans de l'ordre de la següent manera:

$ sudo Docker Run -ell busybox sh



Com podeu veure, Docker extreu correctament les imatges necessàries i executa el contenidor.

Mètode 2: reinicieu el dimoni Docker

De vegades, podeu obtenir l'error 'permís denegat' a Docker si el motor té un problema. En lloc de fer un seguiment manual del problema, podeu intentar un reinici ràpid del dimoni Docker per tornar-lo a carregar.

Comenceu per comprovar l'estat del dimoni Docker de la següent manera:

$ docker systemctl estat docker



Un cop us assegureu que Docker s'està executant, reinicieu el servei amb l'ordre següent:

$ sudo systemctl reinicia el docker


Això hauria d'arrencar el dimoni Docker i solucionar qualsevol problema potencial que us pugui impedir executar qualsevol ordre.

Mètode 3: habiliteu l'usuari no root

Un altre mètode que podeu utilitzar per resoldre l'error 'permís denegat' a Docker és permetre que els usuaris no root executin les ordres de Docker.

Per habilitar aquest mètode, inicieu sessió al sistema amfitrió i creeu un grup nou per a Docker.

$ sudo agregar grup -f docker


A continuació, afegiu qualsevol usuari que vulgueu al grup Docker de la manera següent:

$ sudo usermod -aG docker linuxhint


L'ordre anterior hauria d'afegir l'usuari linuxhint al grup Docker.

Finalment, apliqueu els canvis de grup a la sessió actual mitjançant l'ordre següent:

$ newgrp docker


Un cop completat, podeu executar qualsevol ordre de Docker sense utilitzar sudo per a cap usuari del grup Docker.

Mètode 4: torneu a configurar els permisos de Docker

El següent mètode que podeu utilitzar és restablir els permisos dels sòcols Docker. Comenceu canviant la propietat del sòcol Docker Unix executant l'ordre següent:

$ sudo chown arrel:docker / era / correr / docker.sock


A continuació, preneu la propietat del directori Docker ocult al vostre directori d'inici mitjançant l'ordre de la següent manera:

$ sudo chown -R ' $USER ' : ' $USER ' $HOME / .docker


Finalment, assigneu el grup amb els permisos de lectura i escriptura al directori de la manera següent:

$ sudo chmod -R g+rw ' $HOME /.docker'


Els mètodes proporcionats haurien d'establir permisos suficients per als fitxers i directoris de Docker essencials.

Conclusió

En aquest tutorial, hem après com podem utilitzar els quatre mètodes principals per resoldre l'error 'permís denegat' de Docker quan invoquem una ordre de Docker.