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

Docker 内运行数据库有没有比较好的方法去查看数据?

  •  
  •   purolle · 2023-09-20 02:33:03 +08:00 · 1758 次点击
    这是一个创建于 417 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在我有多个通过 docker compose 启动的项目,每个项目都有自己的数据库容器,现在想查看数据库的数据。如果通过向外暴露端口查看,每个项目需要分配不同的端口,比较麻烦。有没有别的比较好的方法?

    8 条回复    2023-09-20 22:53:05 +08:00
    haimianbihdata
        1
    haimianbihdata  
       2023-09-20 03:12:10 +08:00 via Android
    nginx 做入口
    jinliming2
        2
    jinliming2  
       2023-09-20 03:13:41 +08:00 via iPhone
    也许 unix domain sockets 文件?
    mount 一个主机的目录进去,然后数据库应该都支持监听 unix sockets 的吧,unix sockets 文件放到 mount 的主机目录里,然后用这个文件来连接数据库?
    8rmEHZ8WhVHVOb0E
        3
    8rmEHZ8WhVHVOb0E  
       2023-09-20 03:19:16 +08:00
    你的 docker-compose.yml 文件里可以指定目录映射,可以把配置和数据从宿主目录映射给容器,这样方便修改,容器挂了数据也好恢复,例:

    services:
    mysql:
    image: 'mysql:8.0'
    container_name: mysql_server
    volumes:
    - ./data:/var/lib/mysql # :前面是宿主机目录,绝对路径或者相对 docker-compose.yml ,后面是容器目录
    - ./logs:/var/log/mysql
    - ./conf.d:/etc/mysql/conf.d
    sofukwird
        4
    sofukwird  
       2023-09-20 03:20:16 +08:00 via Android
    在里面再起一个 socks5 server ,通过 socks5 代理访问管理
    rocmax
        5
    rocmax  
       2023-09-20 06:38:58 +08:00 via Android
    docker compose 里加个 phpMyAdmin 之类的管理工具 service ,用它连接多个数据库,只对外暴露管理工具的网页端口。
    如果是一个项目一个 docker compose 的话就需要给它们配置成同一个 network
    LifeDesigner
        6
    LifeDesigner  
       2023-09-20 13:27:14 +08:00
    我的解决方案是启动一个 https://github.com/dbeaver/cloudbeaver ,通过 container_name 链接到不同的数据库上
    mmdsun
        7
    mmdsun  
       2023-09-20 17:10:11 +08:00
    你的查看工具也按照到 docker 里面同一个网络,容器之间,直接容器名就能访问数据库了。
    再把查看工具映射端口。
    purolle
        8
    purolle  
    OP
       2023-09-20 22:53:05 +08:00
    @mmdsun 这个方案好,感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2729 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:37 · PVG 15:37 · LAX 23:37 · JFK 02:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.