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

343 天前
 Rebron1900

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
1652 次点击
所在节点    Docker
16 条回复
Earsum
343 天前
~/data/mysql-data
danbai
343 天前
~/data/mysql-data
danbai
343 天前
在你用户目录下 data
DOGSO
343 天前
自己写的 volumes 自己还是看下吧。。。
Rebron1900
343 天前
@danbai 我文中说了,现在数据不在 ~/data/mysql-data 中,这也是我奇怪的点
hubqin
343 天前
你用的是哪个版本?不同版本 mysql 的默认数据目录会不一样。
johnzr
343 天前
不在 `~/data/mysql-data` 中?? 那跑哪去了?
lingex
343 天前
docker-compose 中的~可能会跑到奇怪的地方,比如/snap/…
最好是写成./ 或者绝对路径
Jony4Fun
343 天前
要不在 mysql 下 touch 一个 特殊名字的文件,然后去 host 上 find 一下?
johnzr
343 天前
@lingex 原来如此
xxx027
343 天前
不写成绝对路径那就会到处跑,理论上是在启动 docker 的用户的家目录那里,但那个用户未必就是你当前这个用户
cookii
343 天前
全局 find 一下
lmaq
342 天前
~/data/mysql-data/data
Rebron1900
342 天前
结帖了,用 sudo 执行的 docker-compose ,因为是 root 权限,所以数据跑到 /root/data/mysql-data 里去了。
body007
342 天前
执行一下 docker-compose config (最终都按这里结果生效),看看最终生效目录。或许你可以写下面这种。
$HOME/data/mysql-data/data:/var/lib/mysql
julyclyde
342 天前
又一例因为 docker 给自己找麻烦的案例

不过幸好这次的结果是 OP 不但解决了问题而且功力大增

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1000456

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX