Solución:
Puede iniciar sesión en el contenedor de Docker utilizando el usuario raíz (ID = 0) en lugar del usuario predeterminado proporcionado cuando utiliza el -u
opción. P.ej
docker exec -u 0 -it mycontainer bash
root (id = 0) es el usuario predeterminado dentro de un contenedor. El desarrollador de imágenes puede crear usuarios adicionales. Esos usuarios son accesibles por su nombre. Al pasar una identificación numérica, el usuario no tiene que existir en el contenedor.
de la documentación de Docker
Actualizar: Por supuesto, también puede usar el comando de administración de Docker para contenedores para ejecutar esto:
docker container exec -u 0 -it mycontainer bash
Finalmente, decidí reconstruir mis imágenes de Docker, para cambiar la contraseña de root por algo que sabré.
RUN echo 'root:Docker!' | chpasswd
o
RUN echo 'Docker!' | passwd --stdin root
Hay un par de maneras de hacerlo.
-
Para ejecutar Docker anulando la configuración de USUARIO
docker exec -u 0 -it containerName bash
o
docker exec -u root -it --workdir / <containerName> bash
-
Haga los permisos de archivo necesarios, etc., durante la compilación de la imagen en el archivo Docker
-
Si todos los paquetes están disponibles en su imagen de Linux,
chpasswd
en el dockerfile antes de la utilidad USER.
Para una referencia completa: http://muralitechblog.com/root-password-of-a-docker-container/