繁体   English   中英

在我的卷本地主机上找不到 mysql docker 数据文件

[英]Cannot find mysql docker data files on my volume local host

我创建了一个简单的 mysql docker 实例作为

docker 运行-d
--name mysql3
-p 3306:3306
-v 数据库:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=rsecret
-e MYSQL_DATABASE=mkt_data_db
mysql/mysql服务器:8.0

之后我登录并创建了表

$docker exec -it mysql3 bash
#mysql -u root -p

使用 mkt_data_db;
创建表价格(ticker char(30), eod_date date, close float);
插入 price(ticker, eod_date, close) values ('xyz', curdate(), 100.1);

当我注销并检查数据库目录时,它是空的

$ ls -al 数据库/
总计 0
drwxr-xr-x 2 账户人员 64 6 月 21 日 23:38。
drwxr-xr-x 6 账户人员 192 6 月 21 日 23:38..

当我再次停止+rm+运行 docker 时,我确实看到了“价格”表和其中的数据
数据库存储在我的本地主机 (mac) 上的什么位置?
理想情况下,我想将这些数据库文件(数据)移动到另一台计算机,在 docker 上运行并在该计算机上查看数据。

这是一个有趣的问题,感谢您发布答案!

我很想知道docker inspect mysql3在未指定完整路径(如您的原始问题)时会显示什么结果(在大量输出中查找“Mounts”部分)。

事后思考:我喜欢在创建共享卷时使用pwd (假设您在所需目录中运行命令):

    docker run -d
    --name mysql3
    -p 3306:3306
    -v $(pwd):/var/lib/mysql
    -e MYSQL_ROOT_PASSWORD=rsecret
    -e MYSQL_DATABASE=mkt_data_db
    -e MYSQL_USER=mkt_data_usr
    -e MYSQL_PASSWORD=usecret
    mysql/mysql-server:8.0

上面的问题是通过提供带有 -v 标志的绝对路径来解决的,即

docker 运行-d
--name mysql3
-p 3306:3306
-v /用户/accnt/db:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=rsecret
-e MYSQL_DATABASE=mkt_data_db
-e MYSQL_USER=mkt_data_usr
-e MYSQL_PASSWORD=使用密码
mysql/mysql服务器:8.0

即改变-v db:/var/lib/mysql-v /Users/accnt/db:/var/lib/mysql
之后 $ls -l /Users/accnt/db 显示了我的整个数据库内容(包括里面的 mkt_data_db 和价格表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM