docker容器和資料庫資料分離

2021-08-06 01:52:47 字數 838 閱讀 3820

我用的是mysql資料庫

因為我在docker容器裡已經安裝好乙個mysql伺服器,我需要的是/var/lib/mysql下的資料。

1.執行容器,並掛載本地乙個空目錄到容器中的非/var/lib/mysql目錄下,

docker容器中在被掛載目錄下修改會同步到本地目錄中(舉例說你掛載/home/***/目錄到docker容器中的/root/tmp/目錄下,當你進入docker容器並修改/root/tmp目錄下的內容時會被同步本地/home/***/目錄下,相當於就是在修改本地的/home/***/目錄!)

2.進入容器並將容器中的/var/lib/mysql/目錄下的內容複製到/root/tmp/目錄下(命令:cp -r /var/lib/mysql/  /root/tmp/),並遞迴修改目標檔案(/root/tmp/mysql/)的屬主/組為mysql!,這點很重要,不然以後掛載到容器中會導致mysql服務起不來;

3.退出容器,然後去檢視/home/***/會發現多出來乙個mysql目錄中,檢視mysql下的檔案屬性,你會看到owner會變成乙個反正我不知道的使用者,我的是lxd,不知道是不是固定的。保持這個樣子不要手賤修改它;

4.之後就可以docker run的時候掛載本地的/home/***/mysql/到容器中的/var/lib/mysql/下了,docker容器是暫存的,但是只要修改了資料庫中的東西(即修改了/var/lib/mysql/下的東西)就會同步到本地的/home/***/mysql/目錄下,成功實現分離。這樣也更安全。

新增1個docker容器執行的小tips,進入容器後,如果exit會直接停掉容器,裡面的服務也會停掉,可以使用ctrl+p然後ctrl+q來掛起容器保證服務正常。

Docker資料卷和資料卷容器

在容器中管理資料主要有兩種方式 資料卷 data volumes 資料卷容器 data volume containers 資料卷 資料卷是乙個可提供乙個或多個容器使用的特殊目錄,它繞過ufs unix檔案系統 可以提供很多有用的特性 資料卷可以在容器之間共享和使用 對資料卷的修改會立馬生效 對資料...

docker 資料卷和資料卷容器

docker 資料管理 在生產環境中使用 docker 往往需要對資料進行持久化,或者需要在多個容器之間進行 資料共享,這必然涉及容器的資料管理操作 容器中的管理資料主要有兩種方式 資料卷 data volumes 容器內資料直接對映到本地主機環境 資料卷容器 data volume contain...

Docker資料卷和資料卷容器

宿主機目錄 var www 掛載容器中的 data1 佔宿主機記憶體 docker run v var www data1 name web1 it centos 7 bin bash root 601b1b8a4835 ls data1 root 601b1b8a4835 cd data1 roo...