V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jacyl4
V2EX  ›  Docker

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

  •  
  •   jacyl4 · 2022-03-26 19:59:58 +08:00 · 1615 次点击
    这是一个创建于 759 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    8 条回复    2022-03-26 23:38:04 +08:00
    Jooooooooo
        1
    Jooooooooo  
       2022-03-26 20:11:53 +08:00
    搜索 kms
    jacyl4
        2
    jacyl4  
    OP
       2022-03-26 20:18:24 +08:00
    @Jooooooooo 好的谢谢。
    Showfom
        3
    Showfom  
       2022-03-26 21:19:43 +08:00
    你的用户名和密码并不会保留在镜像里,都是会挂载在 Volumes 里的

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

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

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

    除了你本地的程序,不要暴露端口到外面,别人又访问不了,有啥好担心的
    jacyl4
        5
    jacyl4  
    OP
       2022-03-26 21:22:45 +08:00
    @Showfom 我明白数据持久化。密码方面的环境变量就数据库建立的第一次用。普通升级都 OK ,但是有不定期初始化的用处。。。
    Showfom
        6
    Showfom  
       2022-03-26 21:24:27 +08:00
    @jacyl4 #5 所以用啥 docker run 我们都是 docker-compose 然后自己挂载数据库目录的 要重新初始化就重新挂载一个新的目录呀
    jacyl4
        7
    jacyl4  
    OP
       2022-03-26 21:29:21 +08:00
    docker run 还是简易嘛,少更新个 compose ,只是部署一个单独的 mariadb ,其他不打算 docker 化。可初始化的时候,又要用环境变量建库诶。就是想把环境变量不明文一下
    cheng6563
        8
    cheng6563  
       2022-03-26 23:38:04 +08:00
    密码只是第一次初始化的时候用的吧。之后都持久化存库了随你改,docker 参数上的密码也就没用了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3121 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:46 · PVG 22:46 · LAX 07:46 · JFK 10:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.