Root password inside a Docker container
Solution 1:
You can log into the Docker container using the root user (ID = 0) instead of the provided default user when you use the -u
option. E.g.
docker exec -u 0 -it mycontainer bash
root (id = 0) is the default user within a container. The image developer can create additional users. Those users are accessible by name. When passing a numeric ID, the user does not have to exist in the container.
from Docker documentation
Update: Of course you can also use the Docker management command for containers to run this:
docker container exec -u 0 -it mycontainer bash
Solution 2:
Eventually, I decided to rebuild my Docker images, so that I change the root password by something I will know.
RUN echo 'root:Docker!' | chpasswd
or
RUN echo 'Docker!' | passwd --stdin root
Solution 3:
There are a couple of ways to do it.
-
To run the Docker overriding the USER setting
docker exec -u 0 -it containerName bash
or
docker exec -u root -it --workdir / <containerName> bash
-
Make necessary file permissions, etc., during the image build in the Docker file
-
If all the packages are available in your Linux image,
chpasswd
in the dockerfile before the USER utility.
For complete reference: http://muralitechblog.com/root-password-of-a-docker-container/
Solution 4:
To create/change a root password in a running container
docker exec -itu 0 {container} passwd
Solution 5:
I am able to get it working with the below command.
root@gitnew:# docker exec -it --user $(username) $(containername) /bin/bash