How to create new users in a Docker container?

Updated on 4/4/2022 – If you have a docker container and would like to add users to run some processes, this short tutorial is for you. The trick here is to rely on USERADD rather than on the interactive wrapper ADDUSER that many would normally invoke.

Run the command below in your terminal in order to create a home folder for the new docker user. It will ensure also that bash is the shell by default.

RUN useradd -ms /bin/bash the_new_user

Next you can add the following to your Docker file :

USER the_new_user
WORKDIR /home/the_new_user                          [dockerfile create user]

Every interactive session and command afterwards will be executed as user the_new_user:

docker run -t -i image

the_new_user@471w5re87434:~$

In case you would like to grant permissions, you can give the_new_user the required permissions to run your desired programs before executing the user command.

Read: How to run and manage a Docker container on Linux Ubuntu/Debian

For security reasons, the use of non-privileged users inside the Docker containers is recommended. This however has some disadvantages in that people deriving Docker images from your own, would need to switch to root before they can run commands with elevated superuser privileges.


If you like the content, we would appreciate your support by buying us a coffee. Thank you so much for your visit and support.

 

Nikolaus Oosterhof

Nikolaus holds a degree in software development and has a strong passion for all things tech-related, especially gadgets with screens. Though he is nostalgic for older phone models, he's a retired gamer and continues to enjoy programming in open-source environments. Additionally, Nikolaus enjoys writing about Linux, macOS and Windows and has experience designing web pages.

Leave a Reply