亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker run啟動的容器掛掉了數據怎么解決

發布時間:2022-05-31 11:18:08 來源:億速云 閱讀:438 作者:zzz 欄目:大數據

這篇文章主要介紹了docker run啟動的容器掛掉了數據怎么解決的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇docker run啟動的容器掛掉了數據怎么解決文章都會有所收獲,下面我們一起來看看吧。

情景描述

在某個系統中,功能性的服務使用 docker stack deploy xxx 啟動,某個國產數據庫的服務單獨使用 docker run xxx 啟動,數據庫服務沒有將存儲的位置掛載出來;

結果客戶重啟了服務器…再登錄到服務器重啟服務的時候,發現了一個問題,之前數據庫里的數據可能會消失(如果再使用 docker run 啟動的話)。

解決辦法

嘗試1

起初想的是數據肯定丟了,那就只能重新折騰一次數據了,但工作量太大了…

不過也沒辦法,下次再啟動,把存儲掛載到硬盤就好了,orz

不過和同事交流了之后,發現了一個更為簡單(但也不是永久的辦法),見嘗試2

嘗試2

同事提到,可以使用 docker start container_name 再次將容器啟動,這樣的話數據還在。后面嘗試了一下,果然數據還在……雖然也只是個臨時的解決辦法

后面想了一下,docker啟動的鏡像,如果不將數據映射出來的話,會存儲在默認的volume;即使用docker restart xxx重啟容器,那變動的數據也還是在的;也就是說在這個地方,服務器重啟了,容器掛掉了(使用docker ps查看,其容器狀態是exited),但其實之前的數據還會在默認的volume下,只有刪除掉容器的時候,變動的數據才會丟失。

驗證測試

隨便打包一個鏡像,啟動容器,創建一個文件,再停止,再啟動,查看文件是否存在

# 啟動容器
? 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
# 進容器增加文件
? 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
# 進去查看文件是否存在
? 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 依然存在;此時如果停掉容器,使用docker rm刪掉容器,再重新啟動一個同名容器,可以看到,容器內不再有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
# 啟動新的同名容器
? docker_start_test docker run -itd --name docker_run_test 4cbf48630b46 ping 127.0.0.1
99a6f5df0a86e4c07abf184e322a23e4fbec89ff354691459cdac8fcd8687ba3
# 進入容器驗證
? 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的說明

從官網看到,start命令的作用是:

start one or more stopped containers

emmm,挺直白,沒什么可說的

ps

其實最好的辦法,就是將容器的存儲目錄掛載出來…另外,一般來講似乎數據庫服務不應該使用容器啟動

               

關于“docker run啟動的容器掛掉了數據怎么解決”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“docker run啟動的容器掛掉了數據怎么解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

九寨沟县| 保山市| 柏乡县| 江陵县| 南皮县| 色达县| 四平市| 宁夏| 东港市| 历史| 五大连池市| 铅山县| 卓资县| 裕民县| 商水县| 手游| 宝丰县| 襄汾县| 屏东市| 晋宁县| 客服| 永川市| 彩票| 大理市| 大名县| 临武县| 嵩明县| 沾化县| 台北市| 台安县| 新建县| 旺苍县| 十堰市| 遂溪县| 南宁市| 江陵县| 保靖县| 儋州市| 铜梁县| 娄底市| 望江县|