docker: la installation de una aplicación node.js tiene problemas, ya que Docker se ejecuta como root

Configure una instancia de docker mediante pull ubuntu y luego a través de base-image / docker , y luego instale node.js con éxito encima de esto.

Sin embargo, cuando bash extraer el repository de una aplicación node.js en la que estoy trabajando, llego a una acción de npm install y luego me meto en problemas porque esa acción NO espera ser ejecutada como root, y la he instanciado vía

 docker run -name="{name}" -t -i {my custom docker container mirroring base-image) /bin/bash 

que me ha registrado como root ¿Hay alguna manera de ejecutar docker no como root?

Sí, necesitará crear la otra count de usuario dentro del contenedor de acuerdo con la distribución de Linux de su contenedor (aquí hay un ejemplo de Ubuntu ).

Una vez que haya configurado la count de usuario, puede usar el parámetro USER Dockerfile para ejecutar los commands restantes en el file Docker como ese usuario. Por favor vea el ejemplo de PostgreSQL para un caso de uso completo.

¿De dónde vino el usuario de Postgre en ese ejemplo? Los packages de Debian crean los usuarios que necesitan cuando están instalados. Si desea crear su propio usuario, puede agregar RUN useradd a su Dockerfile . Para un ejemplo completo, puedes mirar el Jira Dockerfile en este Blog de Atlassian

Como operador, también puede decidir la count de usuario que se utilizará en el time de docker run , utilizando el parámetro -u . Esto anularía al USER elegido en el file Docker.