Me enfrenté a un problema similar, que es un problema de permisos y la causa de este problema se debe a que el demonio / servidor Docker siempre se ejecuta como el root
usuario, y quiere que siempre introduzca el comando docker sudo
.
Docker daemon se une a un socket Unix en lugar de un puerto TCP. Por defecto, el socket Unix es propiedad del usuario root
y otros usuarios solo pueden acceder a él usando sudo
.
Para solucionar esto, esto es lo que funcionó para mí:
En primer lugar, verifique si ya ha creado un grupo de acopladores:
cat /etc/group
Si no encuentra docker
en la lista que se muestra, deberá crear uno:
sudo groupadd docker
A continuación, confirme su user
y su group
utilizando el siguiente comando:
cat /etc/group
Desplácese para ver el grupo de Docker. Debe ser de este formato.
docker:x:140:promisepreston
dónde docker
esta mi group
y promisepreston
es miuser
Ahora podemos agregar su usuario al grupo acoplable
Solo para archivos de contenedor Docker:
Copie y ejecute el siguiente comando en su terminal exactamente como se indica sin modificarlo de ninguna manera, independientemente de la imagen / contenedor / comando de la ventana acoplable que desea ejecutar o está intentando ejecutar o está causando el problema de permiso:
sudo usermod -aG docker $USER
Después de ejecutar el comando anterior, deberá cerrar sesión y volver a iniciarla para que su membresía de grupo sea reevaluada. Sin embargo, en Linux, también puede ejecutar el siguiente comando a continuación para activar los cambios en los grupos ( Copie y ejecute el siguiente comando en su terminal exactamente como se indica sin modificarlo de ninguna manera, independientemente de la imagen / contenedor / comando del acoplador que desea ejecutar o está intentando ejecutar o está causando problemas de permisos ):
newgrp docker
Ahora puede verificar que puede ejecutar comandos de Docker sin permisos de sudo, ejecutando el comando que está causando el problema de permisos nuevamente, diga ( Reemplazar my-command
con el nombre de su imagen / contenedor / comando ):
docker run my-command
Para los archivos del sistema de archivos Docker y Local:
Si tiene una copia de los archivos en su sistema de archivos local, puede cambiar la propiedad del directorio de la aplicación donde se almacenan los archivos de la aplicación, utilizando este formato:
sudo chown <your_user>:<your_group> -R my-app-directory/
Entonces en mi caso será:
sudo chown promisepreston:docker -R my-app-directory/
Nota: ejecute este comando dentro del directorio principal que contiene el directorio de la aplicación.
Eso es todo.
espero que esto ayude