我正在使用一个Docker映像,它是使用USER命令构建的,以使用一个称为dev的非根用户。 在容器中,我是“dev”,但我想编辑/etc/hosts文件。
所以我需要是根。我正在尝试su命令,但要求我输入根密码。
Docker容器中root用户的默认密码是什么?
我正在使用一个Docker映像,它是使用USER命令构建的,以使用一个称为dev的非根用户。 在容器中,我是“dev”,但我想编辑/etc/hosts文件。
所以我需要是根。我正在尝试su命令,但要求我输入根密码。
Docker容器中root用户的默认密码是什么?
当前回答
有几种方法可以做到。
运行覆盖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/
其他回答
在运行的容器中创建/更改根密码
docker exec -itu 0 {container} passwd
有几种方法可以做到。
运行覆盖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/
您可以以根用户身份SSH进入docker容器
docker exec -it --user root <container_id> /bin/bash
然后使用此命令修改root密码
passwd root
通过输入确保sudo已安装
sudo
如果没有安装,请安装
apt-get install sudo
如果需要为用户dev赋予sudo权限,可以将用户dev添加到sudo组
usermod -aG sudo dev
现在,您可以在容器内从您的开发用户运行sudo级别的命令,或者您可以使用前面设置的密码在容器内切换到root。
要测试它,请以用户dev登录,并列出根目录的内容,通常只有根用户才能访问。
sudo ls -la /root
输入dev的密码
如果您的用户在正确的组中,并且您正确地输入了密码,那么您使用sudo发出的命令应该以root权限运行。
当使用-u选项时,您可以使用root用户(ID = 0)而不是提供的默认用户登录Docker容器。如。
docker exec -u 0 -it mycontainer bash
Root (id = 0)是容器中的默认用户。图像 开发人员可以创建其他用户。可以访问这些用户 的名字。当传递数字ID时,用户不必存在于 的容器中。
摘自Docker文档
更新:当然你也可以使用Docker容器管理命令来运行这个:
Docker容器exec -u 0 -它mycontainer bash
你也可以这样使用它(如果你需要确认密码)
(echo 'myrootpassword'; echo 'myrootpassword') | passwd root