問題現象:
建立表并存有資料的mysql container通過docker commit的方式生成的鏡像,然后利用鏡像創建容器,能正常連接,但里面沒有之前的資料
問題來源及場景:
docker入坑菜鳥一枚,有個專案用的是mysql,想帶著里面的資料進行遷移,我使用了mysql的docker鏡像啟了后臺服務,在這個容器配置好用戶資訊之后,并且也建了個表,存放了資料,然后我想對這個容器打包成鏡像,利用鏡像重新創建的container,docker run -i -p 3306:3306 -t image,連接之后發現之前建的資料庫丟失了
請問這是怎么回事
uj5u.com熱心網友回復:
mysql資料庫中的資料默認是存放在/var/lib/mysql目錄下的,而mysql容器通常是將容器內的/var/lib/mysql作為volume掛載,當你使用commit命令把容器打包成鏡像時,commit操作并不會包含容器內掛載的volume中的資料變化,所以會發現資料都不在了。我這兩天也是在這個坑里踩了好久
uj5u.com熱心網友回復:
進容器看了下發現資料的確是在/var/lib/mysql這個目錄下,這樣的話有沒有啥優雅的方式將掛載卷的資料一起打包進去的,我只能想到再掛載/var/lib/mysql到linux本地,然后再進行打包塞到鏡像里,感覺不是很優雅了轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/32396.html
標籤:Docker
下一篇:急求~!阿里云centos7.3 安好 Python 3.7 以后,再安裝matplotlib,pandas,scikit-learn庫一直報錯,求幫忙看看!!
