我正在使用一个Docker映像,它是使用USER命令构建的,以使用一个称为dev的非根用户。 在容器中,我是“dev”,但我想编辑/etc/hosts文件。
所以我需要是根。我正在尝试su命令,但要求我输入根密码。
Docker容器中root用户的默认密码是什么?
我正在使用一个Docker映像,它是使用USER命令构建的,以使用一个称为dev的非根用户。 在容器中,我是“dev”,但我想编辑/etc/hosts文件。
所以我需要是根。我正在尝试su命令,但要求我输入根密码。
Docker容器中root用户的默认密码是什么?
当前回答
上面的一些答案是不错的,尤其是像这样的:
docker exec -u root -it CONTAINERID /bin/bash
从答案的第一列中获取CONTAINERID:
docker ps
这让你扎根,你可以做任何你想做的事。但前提是该命令存在于容器中。为了做一些像修改根密码这样简单的事情(正如上面许多人建议的那样),我不得不关闭我的VPN并做:
yum install -y passwd
当我在那里时,我安装了vim和sudo,以备将来需要。
请注意:passwd不会让您使用简单的密码。
其他回答
我可以用下面的命令让它工作。
root@gitnew:# docker exec -it --user $(username) $(containername) /bin/bash
docker exec -u 0 -it containername bash
默认情况下,docker容器以root用户运行。
如果您仍在使用容器,可以使用exit命令返回root(默认用户)用户,而不是再次运行容器。
的例子,
[dev@6c4c86bccf93 ~]$ ls
[dev@6c4c86bccf93 ~]$ other-commands..
[dev@6c4c86bccf93 ~]$ exit
[root@6c4c86bccf93 /]# ls
有几种方法可以做到。
运行覆盖USER设置的Docker docker exec -u 0 -it containerName bash
or
docker exec -u root -it --workdir / <containerName> bash
在Docker文件的镜像构建过程中,设置必要的文件权限等 如果您的Linux映像中所有的包都可用,那么在dockerfile中USER实用程序之前输入chpasswin。
完整参考:http://muralitechblog.com/root-password-of-a-docker-container/
你也可以这样使用它(如果你需要确认密码)
(echo 'myrootpassword'; echo 'myrootpassword') | passwd root