docker重啟后數(shù)據(jù)丟失 如何實(shí)現(xiàn)docker服務(wù)重啟容器不停止?
如何實(shí)現(xiàn)docker服務(wù)重啟容器不停止?1. 安裝 Docker在開(kāi)始前,我們首先得確保在Linux主機(jī)中已經(jīng)安裝了Docker。這里,我運(yùn)行的是CentOS 7 主機(jī),我們將運(yùn)行yum管理器和下面的
如何實(shí)現(xiàn)docker服務(wù)重啟容器不停止?
1. 安裝 Docker在開(kāi)始前,我們首先得確保在Linux主機(jī)中已經(jīng)安裝了Docker。這里,我運(yùn)行的是CentOS 7 主機(jī),我們將運(yùn)行yum管理器和下面的命令來(lái)安裝Docker。# yum install docker# systemctl restart docker.service2. 創(chuàng)建 Dockerfile現(xiàn)在,Docker守護(hù)進(jìn)程已經(jīng)在運(yùn)行中了,我們現(xiàn)在準(zhǔn)備創(chuàng)建自己的Firefox Docker容器。我們要?jiǎng)?chuàng)建一個(gè)Dockerfile,在其中我們要輸入需要的配置來(lái)創(chuàng)建一個(gè)可以工作的Firefox容器。為了運(yùn)行 Docker 鏡像我們需要使用最新版本的CentOS。要?jiǎng)?chuàng)建 Docker 鏡像,我們需要用文本編輯器創(chuàng)建一個(gè)名為Dockerfile的文件。# nano Dockerfile
如何保證dockerdaemon重啟,但容器不重啟?
避免Docker容器啟動(dòng)腳本運(yùn)行后自動(dòng)退出的解決辦法 docker run指定的命令如果不是那些一直掛起的命令(比如運(yùn)行top,不斷echo),就是會(huì)自動(dòng)退出的。-d命令是設(shè)置detach為true,根據(jù)官方的文檔,意思是讓這個(gè)命令在后臺(tái)運(yùn)行,但并不是一直運(yùn)行(我們?cè)谝粋€(gè)正常的Linux Terminal中運(yùn)行/bin/bash,運(yùn)行完了也就完了,不會(huì)一直掛著等待響應(yīng)的,所以確實(shí)沒(méi)辦法用daemon方式來(lái)跑/bin/bash)。這個(gè)地方官方早期和現(xiàn)在的文檔也確實(shí)有些前后不一致,現(xiàn)在是detach,早期的文檔說(shuō)指定-d以daemon方式來(lái)運(yùn)行容器,可能存在一定的誤解。 另外,如果你需要跑容器里的bash,直接運(yùn)行docker run -i -t CONTAINER_NAME /bin/bash 就可以了,如果覺(jué)得參數(shù)比docker attach多,可以設(shè)置一個(gè)別名(alias)來(lái)解決: alias dockerbash="docker run -i -t CONTAINER_ID /bin/bash"設(shè)置好別名后,直接運(yùn)行dockerbash就可以進(jìn)入容器的bash了
docker容器重啟后容器ip會(huì)變么?
不更改運(yùn)行中的容器配置,容器本身是無(wú)狀態(tài)的,當(dāng)然也可以通過(guò)進(jìn)入容器內(nèi)部的方式進(jìn)行更改:
docker exec -it
這樣的更改是無(wú)法持久化保存的,當(dāng)容器重啟后,更改就丟失了,正確的做法是將需要持久化保存的數(shù)據(jù)放在掛載的存儲(chǔ)卷中,當(dāng)配置需要改變時(shí)直接刪除重建。