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