簡體   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