docker 容器會(huì)掛嗎?docker容器有可能會(huì)掛掉,比如 docker run 啟動(dòng)的容器掛掉。對(duì)于容器掛掉我們最擔(dān)心的莫過(guò)于數(shù)據(jù)問(wèn)題,下面來(lái)舉例說(shuō)明。
在某個(gè)系統(tǒng)中,功能性的服務(wù)使用 docker stack deploy xxx 啟動(dòng),某個(gè)數(shù)據(jù)庫(kù)的服務(wù)單獨(dú)使用 docker run xxx 啟動(dòng),數(shù)據(jù)庫(kù)服務(wù)沒(méi)有將存儲(chǔ)的位置掛載出來(lái);結(jié)果重啟了服務(wù)器,再登錄到服務(wù)器重啟服務(wù)的時(shí)候,發(fā)現(xiàn)之前數(shù)據(jù)庫(kù)里的數(shù)據(jù)可能會(huì)消失(如果再使用 docker run 啟動(dòng)的話(huà))。
解決辦法1
數(shù)據(jù)丟失,一般最直接的想法是重新倒騰一次數(shù)據(jù),但這樣工作量很大。下次再啟動(dòng)的時(shí)候,把存儲(chǔ)掛載到硬盤(pán)。不過(guò)也還有一個(gè)更為簡(jiǎn)單的方法。
解決辦法2
可以使用 docker start container_name 再次將容器啟動(dòng),這樣的話(huà)數(shù)據(jù)還在。不過(guò)這也只是個(gè)臨時(shí)的解決辦法。
docker啟動(dòng)的鏡像,如果不將數(shù)據(jù)映射出來(lái)的話(huà),會(huì)存儲(chǔ)在默認(rèn)的volume;即使用docker restart xxx重啟容器,那變動(dòng)的數(shù)據(jù)也還是在的。
也就是說(shuō),在這個(gè)地方服務(wù)器重啟了,容器掛掉了(使用docker ps查看,其容器狀態(tài)是exited),但其實(shí)之前的數(shù)據(jù)還會(huì)在默認(rèn)的volume下,只有刪除掉容器的時(shí)候,變動(dòng)的數(shù)據(jù)才會(huì)丟失。
其實(shí)最好的辦法,就是將容器的存儲(chǔ)目錄掛載出來(lái)。另外,一般來(lái)講,數(shù)據(jù)庫(kù)服務(wù)不應(yīng)該使用容器啟動(dòng)。
西部數(shù)碼的容器云產(chǎn)品是基于docker技術(shù)實(shí)現(xiàn),擁有上萬(wàn)linux鏡像,靈活強(qiáng)大,可彈性擴(kuò)展,自由輕松搭建私有網(wǎng)絡(luò),可做集群服務(wù)。性?xún)r(jià)比高,容器云產(chǎn)品購(gòu)買(mǎi)鏈接 https://www.west.cn/paas/container/