问一个 docker mariadb 数据库 镜像升级,保留参数又不泄漏密码的方式

2022-03-26 19:59:58 +08:00
 jacyl4

第一次 docker run 的时候,参数内除了端口与映射挂载路径,还设置了 root 密码,创建了个新数库,并为该库建了普通用户与密码的。

那以后升级的升级镜像的时候,原容器删掉,岂不是要重新把第一次的所有参数再用上一遍么。如果考虑长久持续更新的话,docker run 参数肯定就保存在机器内了。

但是这样,岂不是明文保存了数据库的 密码用户库名等等么。有没有什么方式,能避开这种敏感呢?

1826 次点击
所在节点    Docker
8 条回复
Jooooooooo
2022-03-26 20:11:53 +08:00
搜索 kms
jacyl4
2022-03-26 20:18:24 +08:00
@Jooooooooo 好的谢谢。
Showfom
2022-03-26 21:19:43 +08:00
你的用户名和密码并不会保留在镜像里,都是会挂载在 Volumes 里的

默认的话都会在 /var/lib/docker/volumes 这里

第一次安装 Mariadb 的时候你就应该需要自己指定个挂载数据库文件的目录呀,不指定就自己去 /var/lib/docker/volumes 找咯

升级的话,正常操作即可,先 docker pull 然后你再一样参数 docker run 完事了
Showfom
2022-03-26 21:21:29 +08:00
可能楼主说的是在运行 docker 的时候,明文显示了用户名密码

除了你本地的程序,不要暴露端口到外面,别人又访问不了,有啥好担心的
jacyl4
2022-03-26 21:22:45 +08:00
@Showfom 我明白数据持久化。密码方面的环境变量就数据库建立的第一次用。普通升级都 OK ,但是有不定期初始化的用处。。。
Showfom
2022-03-26 21:24:27 +08:00
@jacyl4 #5 所以用啥 docker run 我们都是 docker-compose 然后自己挂载数据库目录的 要重新初始化就重新挂载一个新的目录呀
jacyl4
2022-03-26 21:29:21 +08:00
docker run 还是简易嘛,少更新个 compose ,只是部署一个单独的 mariadb ,其他不打算 docker 化。可初始化的时候,又要用环境变量建库诶。就是想把环境变量不明文一下
cheng6563
2022-03-26 23:38:04 +08:00
密码只是第一次初始化的时候用的吧。之后都持久化存库了随你改,docker 参数上的密码也就没用了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/843086

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX