使用Docker部署MySQL时,数据库文件默认存储在宿主机哪个位置?
Docker部署MySQL的数据存储路径查询方法
你当前执行的启动命令没有手动指定宿主机挂载目录,MySQL容器产生的数据默认存储在Docker自动创建的匿名卷中,可通过以下方式查询宿主机实际路径:
- 执行容器检查命令,查看挂载配置
sudo docker inspect toms-sql - 在返回的JSON结果中定位
Mounts数组,找到Destination值为/var/lib/mysql(MySQL官方镜像默认的容器内数据存储路径)的条目,对应的Source字段值就是宿主机上的实际存储路径,默认格式为/var/lib/docker/volumes/[随机生成的卷ID]/_data。
注意事项
- 该默认路径由Docker内部管理,不建议直接手动修改路径下的文件,很容易导致数据库数据损坏
- 如果需要自定义数据存储位置方便备份、迁移,启动容器时可以添加
-v 宿主机目录:/var/lib/mysql参数绑定挂载目录,示例命令如下:sudo docker run --name toms-sql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -v /home/yourname/mysql-data:/var/lib/mysql mysql
执行该命令后所有数据库数据都会存储到你指定的宿主机/home/yourname/mysql-data目录下。
内容的提问来源于stack exchange,提问作者Qwertford
相关产品推荐
相关产品推荐

