因為需要搞個本地的mysql數據庫,而且本地安裝的程序較多,不想再安mysql了,就想到使用docker來安裝。而且因為數據巨大,所以想到直接使用轉移data文件夾的方式。
各種查詢,而且還使用ai查詢,他們都提到,所有的鏡像和volume都存在docker-desktop-data里。而現在docker官網下載的是docker28,據說(未考證)從docker4開始,就不再有docker-desktop-data這個了。可以本機執行:
# 查看wsl有哪些發行版
wsl --list -a
會發現只有ubuntu和docker-desktop。
好了,到主要內容部分了。
# 創建一個volume
docker volume create mysql_data# 查看這個volume在哪
docker volume inspect mysql_data
執行了inspect后,會有一個Mountpoint:"/var/lib/docker/volumes/mysql_data/_data"。
咦,這個路徑在哪?
想到volume的本質是一個數據卷,所以它應該是在wsl中的docker-desktop里,但是那里根本沒有這個目錄。
后來經研究,發現它實際上是在:
/mnt/docker-desktop-disk/data/docker/volumes/
目錄下,汗。
接下來就好辦了,將data文件夾復制到這個目錄下,就可以docker run了。
不過還要注意一點,如果庫里之前有lower-case-table-names=1的設置,則需要在run的時候設置:
docker run -d \--name mysql \-v mysql_data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=mysql \-p 3306:3306 \mysql:8.0--lower-case-table-name=1
這樣就ok了。