我有一个在主机上运行并创建/启动/停止 docker 容器的脚本。我想要脚本来更改容器中 root 用户的密码。
由于容器是 ssh 服务器,我尝试了:
sshpass -p 'OLDPASS' ssh root@<container-IP> 'echo -e "NEWPASS\nNEWPASS" | passwd root'
但它不起作用。在继续并花更多时间调试它之前,我想知道是否有更聪明的方法来做到这一点。
我知道正确的“docker 方式”是制作一个由 Dockerfile 运行的脚本,该脚本从共享卷中提取密码并将其设置为 root 密码。这听起来很复杂,但我知道该怎么做,并且适用于我使用的另一个 docker 映像。但我不想为这个做。
我只需要一个使用 Docker 或 ssh 以非交互方式更改用户密码的命令。
将打开一个弹出窗口,要求输入密码,然后返回。脚本中没有存储密码
如果你有一个需要设置密码的 docker 容器,而不关心安全性,你可以在 Dockerfile 中添加一条语句:
这与 Docker 无关。您需要明确说明
passwd
您将提供来自 的密码stdin
。这在 Ubuntu 14.04.4 LTS 上完美运行:
在重建容器的脚本(应该在“主机”上运行)中,添加以下行: