第一次 docker run 的时候,参数内除了端口与映射挂载路径,还设置了 root 密码,创建了个新数库,并为该库建了普通用户与密码的。
那以后升级的升级镜像的时候,原容器删掉,岂不是要重新把第一次的所有参数再用上一遍么。如果考虑长久持续更新的话,docker run 参数肯定就保存在机器内了。
但是这样,岂不是明文保存了数据库的 密码用户库名等等么。有没有什么方式,能避开这种敏感呢?
1
Jooooooooo 2022-03-26 20:11:53 +08:00
搜索 kms
|
2
jacyl4 OP @Jooooooooo 好的谢谢。
|
3
Showfom 2022-03-26 21:19:43 +08:00
你的用户名和密码并不会保留在镜像里,都是会挂载在 Volumes 里的
默认的话都会在 /var/lib/docker/volumes 这里 第一次安装 Mariadb 的时候你就应该需要自己指定个挂载数据库文件的目录呀,不指定就自己去 /var/lib/docker/volumes 找咯 升级的话,正常操作即可,先 docker pull 然后你再一样参数 docker run 完事了 |
4
Showfom 2022-03-26 21:21:29 +08:00
可能楼主说的是在运行 docker 的时候,明文显示了用户名密码
除了你本地的程序,不要暴露端口到外面,别人又访问不了,有啥好担心的 |
5
jacyl4 OP @Showfom 我明白数据持久化。密码方面的环境变量就数据库建立的第一次用。普通升级都 OK ,但是有不定期初始化的用处。。。
|
6
Showfom 2022-03-26 21:24:27 +08:00
@jacyl4 #5 所以用啥 docker run 我们都是 docker-compose 然后自己挂载数据库目录的 要重新初始化就重新挂载一个新的目录呀
|
7
jacyl4 OP docker run 还是简易嘛,少更新个 compose ,只是部署一个单独的 mariadb ,其他不打算 docker 化。可初始化的时候,又要用环境变量建库诶。就是想把环境变量不明文一下
|
8
cheng6563 2022-03-26 23:38:04 +08:00
密码只是第一次初始化的时候用的吧。之后都持久化存库了随你改,docker 参数上的密码也就没用了。
|