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

用 docker 创建 mysql,数据文件在那里呢?

  •  
  •   Rebron1900 · 2023-12-14 19:25:02 +08:00 · 1695 次点击
    这是一个创建于 379 天前的主题,其中的信息可能已经有所发展或是发生改变。

    docker-compose 文件如下,现在宿主机里对应的目录中没有数据文件。

    但是我把 mysql 删了,再重新起一个,mysql 中的数据还在,数据应该是已经保存到了宿主机了,但是我想知道在那里,想统一放到指定的目录方便管理。

    version: '3'
    services:
      mysql:
        container_name: mysql
        image: mysql
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: 123456
        ports:
          - 3306:3306
        volumes:
          - ~/data/mysql-data/data:/var/lib/mysql
          - ~/data/mysql-data/config:/etc/mysql/conf.d
    
    16 条回复    2023-12-15 18:51:34 +08:00
    Earsum
        1
    Earsum  
       2023-12-14 19:26:02 +08:00 via Android
    ~/data/mysql-data
    danbai
        2
    danbai  
       2023-12-14 19:26:03 +08:00 via Android
    ~/data/mysql-data
    danbai
        3
    danbai  
       2023-12-14 19:26:34 +08:00 via Android
    在你用户目录下 data
    DOGSO
        4
    DOGSO  
       2023-12-14 22:17:55 +08:00
    自己写的 volumes 自己还是看下吧。。。
    Rebron1900
        5
    Rebron1900  
    OP
       2023-12-14 23:09:29 +08:00
    @danbai 我文中说了,现在数据不在 ~/data/mysql-data 中,这也是我奇怪的点
    hubqin
        6
    hubqin  
       2023-12-14 23:36:00 +08:00
    你用的是哪个版本?不同版本 mysql 的默认数据目录会不一样。
    johnzr
        7
    johnzr  
       2023-12-15 00:18:26 +08:00
    不在 `~/data/mysql-data` 中?? 那跑哪去了?
    lingex
        8
    lingex  
       2023-12-15 00:25:25 +08:00 via Android   ❤️ 1
    docker-compose 中的~可能会跑到奇怪的地方,比如/snap/…
    最好是写成./ 或者绝对路径
    Jony4Fun
        9
    Jony4Fun  
       2023-12-15 00:26:04 +08:00
    要不在 mysql 下 touch 一个 特殊名字的文件,然后去 host 上 find 一下?
    johnzr
        10
    johnzr  
       2023-12-15 00:30:02 +08:00
    @lingex 原来如此
    xxx027
        11
    xxx027  
       2023-12-15 01:36:23 +08:00   ❤️ 2
    不写成绝对路径那就会到处跑,理论上是在启动 docker 的用户的家目录那里,但那个用户未必就是你当前这个用户
    cookii
        12
    cookii  
       2023-12-15 08:34:17 +08:00 via Android
    全局 find 一下
    lmaq
        13
    lmaq  
       2023-12-15 08:56:31 +08:00
    ~/data/mysql-data/data
    Rebron1900
        14
    Rebron1900  
    OP
       2023-12-15 09:43:37 +08:00
    结帖了,用 sudo 执行的 docker-compose ,因为是 root 权限,所以数据跑到 /root/data/mysql-data 里去了。
    body007
        15
    body007  
       2023-12-15 11:20:24 +08:00
    执行一下 docker-compose config (最终都按这里结果生效),看看最终生效目录。或许你可以写下面这种。
    $HOME/data/mysql-data/data:/var/lib/mysql
    julyclyde
        16
    julyclyde  
       2023-12-15 18:51:34 +08:00
    又一例因为 docker 给自己找麻烦的案例

    不过幸好这次的结果是 OP 不但解决了问题而且功力大增
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   922 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:24 · PVG 05:24 · LAX 13:24 · JFK 16:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.