linux下docker通過掛載資料捲到 mysql實現容器配置本地化
前言:當希望在本地上配置容器中的mysql時,發現一個問題,本地需要完整的配置檔案目錄,如果本地是空目錄,那麼容器中的配置目錄也是空的所以不能執行映象,這裡解決這個問題,思路是任意執行一個容器,把裡面的配置目錄複製到本地,然後刪除這個容器,再建立新的容器,並把複製出來的配置目錄和容器中的配置目錄同步,這裡記錄下這個過程。
第一步:建立一個本地配置目錄
輸入命令:mkdir -p /root/DockerCommonConfig/MysqlConfig/,建立資料夾路徑。
第二步:建立任意一個映象並對映配置目錄
docker run -d -p 3306:3306 -v $("pwd):/app
ps:暫時把本地配置目錄和容器中的app資料夾關聯(不能直接關聯容器配置目錄,由於檔案同步原因這會導致容器配置目錄為空無法啟動容器),後續會把容器的配置檔案複製到app,達到複製容器檔案的目的。
-v 表示掛載資料卷,格式是 -v localPath:containerPath 本地目錄:容器目錄
$("pwd") 表示當前目錄的路徑,具體自己控制檯輸入 echo $("pwd") 嘗試。
-e 引數必須有 否則容器無法啟動
輸入docker ps -a 檢視status是Up的就算啟動成功
第三步:複製配置目錄到本地
docker exec -it tempMysql /bin/bash 進入容器命令列,
通過指令:cp -r /etc/mysql /app 指令把etc目錄下的mysql資料夾,複製到app目錄下,由於之前做了本地同步,所以能看到本地資料夾內有mysql資料夾,如下
第四步:刪除容器並建立新容器再同步配置目錄
通過docker stop tempMysql 停止容器,通過docker rm tempMysql 刪除容器,然後本地進入mysql資料夾和容器中的mysql資料夾做同步。
docker run -d -p 3306:3306 -v $("pwd):/etc/mysql
成功啟動呦~~,雖然不知道是不是姿勢不對,這麼大費周章。。。