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
|      1Earsum      2023-12-14 19:26:02 +08:00 via Android ~/data/mysql-data | 
|  |      2danbai PRO ~/data/mysql-data | 
|  |      3danbai PRO 在你用户目录下 data | 
|      4DOGSO      2023-12-14 22:17:55 +08:00 自己写的 volumes 自己还是看下吧。。。 | 
|      5Rebron1900 OP @danbai 我文中说了,现在数据不在 ~/data/mysql-data 中,这也是我奇怪的点 | 
|      6hubqin      2023-12-14 23:36:00 +08:00 你用的是哪个版本?不同版本 mysql 的默认数据目录会不一样。 | 
|  |      7johnzr      2023-12-15 00:18:26 +08:00 不在 `~/data/mysql-data` 中?? 那跑哪去了? | 
|  |      8lingex      2023-12-15 00:25:25 +08:00 via Android  1 docker-compose 中的~可能会跑到奇怪的地方,比如/snap/… 最好是写成./ 或者绝对路径 | 
|  |      9Jony4Fun      2023-12-15 00:26:04 +08:00 要不在 mysql 下 touch 一个 特殊名字的文件,然后去 host 上 find 一下? | 
|      11xxx027      2023-12-15 01:36:23 +08:00  2 不写成绝对路径那就会到处跑,理论上是在启动 docker 的用户的家目录那里,但那个用户未必就是你当前这个用户 | 
|      12cookii      2023-12-15 08:34:17 +08:00 via Android 全局 find 一下 | 
|  |      13lmaq      2023-12-15 08:56:31 +08:00 ~/data/mysql-data/data | 
|      14Rebron1900 OP 结帖了,用 sudo 执行的 docker-compose ,因为是 root 权限,所以数据跑到 /root/data/mysql-data 里去了。 | 
|  |      15body007      2023-12-15 11:20:24 +08:00 执行一下 docker-compose config (最终都按这里结果生效),看看最终生效目录。或许你可以写下面这种。 $HOME/data/mysql-data/data:/var/lib/mysql | 
|      16julyclyde      2023-12-15 18:51:34 +08:00 又一例因为 docker 给自己找麻烦的案例 不过幸好这次的结果是 OP 不但解决了问题而且功力大增 |