jacyl4
V2EX  ›  Docker

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

  •  
  •   jacyl4 · Mar 26, 2022 · 3041 views
    This topic created in 1683 days ago, the information mentioned may be changed or developed.

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

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

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

    8 replies  •  2022-03-26 23:38:04 +08:00
    Jooooooooo
    Jooooooooo
    Mar 26, 2022
    1
    搜索 kms
    jacyl4
    jacyl4
    OP
    Mar 26, 2022
    2
    @Jooooooooo 好的谢谢。
    Showfom
    Showfom
    PRO
    Mar 26, 2022
    3
    你的用户名和密码并不会保留在镜像里,都是会挂载在 Volumes 里的

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

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

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

    除了你本地的程序,不要暴露端口到外面,别人又访问不了,有啥好担心的
    jacyl4
    jacyl4
    OP
    Mar 26, 2022
    5
    @Showfom 我明白数据持久化。密码方面的环境变量就数据库建立的第一次用。普通升级都 OK ,但是有不定期初始化的用处。。。
    Showfom
    Showfom
    PRO
    Mar 26, 2022
    6
    @jacyl4 #5 所以用啥 docker run 我们都是 docker-compose 然后自己挂载数据库目录的 要重新初始化就重新挂载一个新的目录呀
    jacyl4
    jacyl4
    OP
    Mar 26, 2022
    7
    docker run 还是简易嘛,少更新个 compose ,只是部署一个单独的 mariadb ,其他不打算 docker 化。可初始化的时候,又要用环境变量建库诶。就是想把环境变量不明文一下
    cheng6563
    cheng6563
    Mar 26, 2022
    8
    密码只是第一次初始化的时候用的吧。之后都持久化存库了随你改,docker 参数上的密码也就没用了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2962 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 11:20 · PVG 19:20 · LAX 03:20 · JFK 06:20
    ♥ Do have faith in what you're doing.