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