V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
jacyl4
V2EX  ›  Docker

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

  •  
  •   jacyl4 · Mar 26, 2022 · 2597 views
    This topic created in 1501 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
        1
    Jooooooooo  
       Mar 26, 2022
    搜索 kms
    jacyl4
        2
    jacyl4  
    OP
       Mar 26, 2022
    @Jooooooooo 好的谢谢。
    Showfom
        3
    Showfom  
    PRO
       Mar 26, 2022
    你的用户名和密码并不会保留在镜像里,都是会挂载在 Volumes 里的

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

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

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

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