security - 更改 docker-machine docker 用户默认密码
问题描述
我正在使用 docker-machine 来配置生产 docker 环境,也使用 docker swarm。当你创建一个新的 docker-machine 时,docker用户的默认密码是tcuser。您将需要它来将您的机器与配置.ssh/authorized_keys文件的其他站点链接。
当您开始启动服务时,您需要更改默认的docker用户密码,这样您就可以保护您的系统免受未经授权的访问(docker 用户是 sudoer!),但是当您启动passwd
命令并重新启动机器时,您将看到您的更改已被还原。
问题:我应该在哪里或如何更改docker用户密码以保持重新启动之间的更改?
解决方案
Boot2docker 是一个 ISO 映像,它可以启动您的轻型机器并在其上运行 docker 守护程序。它有两个存储持久信息的目录:
/var/lib/booot2docker
:存储操作系统配置。/var/lib/docker
: 存储 docker 守护进程配置。
这两个文件夹在启动期间填充到 tmpfs 文件系统,因此您必须在此处进行更改。
因此,要更改密码,您必须登录到执行docker-machine ssh YourMachine
. 然后更改文件/var/lib/boot2docker/profile
并将此行添加到其中:
echo "docker:YourNewPassword"|sudo chpasswd
然后您必须重新启动机器,例如,docker-machine restart YourMachine
从您的主机启动。这样,profile
脚本将在启动时执行,并将您的密码重置为您在每次重新启动时选择的密码。
您可以按预期检查旧密码是否tcuser
不再有效。
PS:我仍然不明白在stackoverflow或谷歌搜索中找到这个问题的解决方案是多么困难......我真的认为这已经足够重要了。
推荐阅读
- mysql - Spring Boot / MySQL 和 Docker 问题
- c# - 向视图显示 ModelState 错误
- java - Android 上 DriverManager.getConnection() 的 UnsupportedOperationException
- angular - 角度 HTTP 请求返回 406
- c++ - 打印出 ostringstream 缓冲区
- r - R- Stats::Filter, if (many_rows) 中的错误
- angular - 在 angular8 中投射一个 observable
- node.js - iisnode 不会在文件更改时重新启动/更新 Node.js
- python - 有没有办法制作一个分数计数器,其中一个级别以某个分数结束,但可以在游戏的其他级别继续超过相同的分数?
- android - 如何将我的电容器插件导入 Ionic android 应用程序