這篇文章主要介紹了docker run啟動(dòng)的容器掛掉了數(shù)據(jù)怎么解決的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇docker run啟動(dòng)的容器掛掉了數(shù)據(jù)怎么解決文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)康保免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
情景描述
在某個(gè)系統(tǒng)中,功能性的服務(wù)使用 docker stack deploy xxx
啟動(dòng),某個(gè)國(guó)產(chǎn)數(shù)據(jù)庫(kù)的服務(wù)單獨(dú)使用 docker run xxx
啟動(dòng),數(shù)據(jù)庫(kù)服務(wù)沒(méi)有將存儲(chǔ)的位置掛載出來(lái);
結(jié)果客戶(hù)重啟了服務(wù)器…再登錄到服務(wù)器重啟服務(wù)的時(shí)候,發(fā)現(xiàn)了一個(gè)問(wèn)題,之前數(shù)據(jù)庫(kù)里的數(shù)據(jù)可能會(huì)消失(如果再使用 docker run 啟動(dòng)的話)。
解決辦法
嘗試1
起初想的是數(shù)據(jù)肯定丟了,那就只能重新折騰一次數(shù)據(jù)了,但工作量太大了…
不過(guò)也沒(méi)辦法,下次再啟動(dòng),把存儲(chǔ)掛載到硬盤(pán)就好了,orz
不過(guò)和同事交流了之后,發(fā)現(xiàn)了一個(gè)更為簡(jiǎn)單(但也不是永久的辦法),見(jiàn)嘗試2
嘗試2
同事提到,可以使用 docker start container_name
再次將容器啟動(dòng),這樣的話數(shù)據(jù)還在。后面嘗試了一下,果然數(shù)據(jù)還在……雖然也只是個(gè)臨時(shí)的解決辦法
后面想了一下,docker啟動(dòng)的鏡像,如果不將數(shù)據(jù)映射出來(lái)的話,會(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ì)丟失。
驗(yàn)證測(cè)試
隨便打包一個(gè)鏡像,啟動(dòng)容器,創(chuàng)建一個(gè)文件,再停止,再啟動(dòng),查看文件是否存在
# 啟動(dòng)容器 ? docker_start_test docker run -itd --name docker_run_test 4cbf48630b46 ping 127.0.0.1 d6278f537113122d4ccbe00950790750215c5a09002bcbd1ef6f9e660fc9eaac ? docker_start_test docker ps -a container id image command created status ports names d6278f537113 4cbf48630b46 "ping 127.0.0.1" 3 seconds ago up 2 seconds docker_run_test # 進(jìn)容器增加文件 ? docker_start_test docker exec -it docker_run_test /bin/sh sh-4.2# pwd / sh-4.2# touch test sh-4.2# exit exit # 重啟容器 ? docker_start_test docker stop docker_run_test docker_run_test ? docker_start_test docker ps -a | grep docker_run_test d6278f537113 4cbf48630b46 "ping 127.0.0.1" about a minute ago exited (137) 12 seconds ago docker_run_test # 進(jìn)去查看文件是否存在 ? docker_start_test docker start docker_run_test docker_run_test ? docker_start_test docker exec -ti docker_run_test /bin/sh sh-4.2# ls anaconda-post.log bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys test tmp usr var
可以看到,文件 test 依然存在;此時(shí)如果停掉容器,使用docker rm刪掉容器,再重新啟動(dòng)一個(gè)同名容器,可以看到,容器內(nèi)不再有test文件了
# stop / rm掉容器 ? docker_start_test docker stop docker_run_test docker_run_test ? docker_start_test docker ps -a | grep docker_run d6278f537113 4cbf48630b46 "ping 127.0.0.1" 7 minutes ago exited (137) 13 seconds ago docker_run_test ? docker_start_test docker rm d6278f537113 d6278f537113 # 啟動(dòng)新的同名容器 ? docker_start_test docker run -itd --name docker_run_test 4cbf48630b46 ping 127.0.0.1 99a6f5df0a86e4c07abf184e322a23e4fbec89ff354691459cdac8fcd8687ba3 # 進(jìn)入容器驗(yàn)證 ? docker_start_test docker exec -ti docker_run_test /bin/sh sh-4.2# ls anaconda-post.log bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var sh-4.2# ls test ls: cannot access test: no such file or directory
docker run的說(shuō)明
從官網(wǎng)看到,start命令的作用是:
start one or more stopped containers
emmm,挺直白,沒(méi)什么可說(shuō)的
ps
其實(shí)最好的辦法,就是將容器的存儲(chǔ)目錄掛載出來(lái)…另外,一般來(lái)講似乎數(shù)據(jù)庫(kù)服務(wù)不應(yīng)該使用容器啟動(dòng)
關(guān)于“docker run啟動(dòng)的容器掛掉了數(shù)據(jù)怎么解決”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“docker run啟動(dòng)的容器掛掉了數(shù)據(jù)怎么解決”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前名稱(chēng):dockerrun啟動(dòng)的容器掛掉了數(shù)據(jù)怎么解決
鏈接分享:http://aaarwkj.com/article12/jeiidc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、做網(wǎng)站、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站、微信小程序、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)