docker容器狀態(tài)出現(xiàn)Exit(1)的問題及解決
docker容器狀態(tài)出現(xiàn)Exit(1)
今天docker一個容器出現(xiàn)狀態(tài)為Exited(1),為了讓它運(yùn)行起來,我把它重啟restart或刪掉重新運(yùn)行,結(jié)果還是出現(xiàn)這個Exited(1)的問題。

后來查找各種資料,倒騰了好久,才解決掉這個問題?
- docker stop 容器名
- docker rm 容器名
- 最主要的是,在刪除完容器后,還要手動將本地的關(guān)于容器的配置目錄給刪掉。比如我上面這個容器的配置文件就在/var/fdfs下。執(zhí)行命令sudo rm -rf storage。
- 然后再重新由鏡像啟動這個容器就可以了。

修改exit狀態(tài)的docker容器
Linux 系統(tǒng)運(yùn)行基礎(chǔ)
1.boot file system ( bootfs )
包含 Boot Loader與Kernel文件,用戶不能修改這些文件。并且在系統(tǒng)啟動過程完成之后, 整個系統(tǒng)的內(nèi)核都會被加載進(jìn)內(nèi)存。此時bootfs會被卸載, 從而釋放出所占用的系統(tǒng)內(nèi)存。
在容器中可以運(yùn)行不同版本的Linux, 說明對于同樣內(nèi)核版本的不同的 Linux 發(fā)行版的 bootfs 都是一致的, 否則會無法啟動。因此可以推斷, Docker運(yùn)行是需要內(nèi)核支持的。
Linux系統(tǒng)中典型的bootfs目錄: (核心) /boot/vmlinuz、(核心解壓縮所需 RAM Disk) /boot/initramfs
2.root file system ( rootfs )
1) 不同的Linux發(fā)行版本, bootfs相同, rootfs不同(二進(jìn)制文件)。
2) 每個容器有自己的 rootfs, 它來自不同的 Linux 發(fā)行版的基礎(chǔ)鏡像,包括 Ubuntu, Debian 和 SUSE 等。
3) 使用不同的rootfs 就決定了, 在構(gòu)建鏡像的過程中, 可以使用哪些系統(tǒng)的命令。
4) 典型的rootfs 目錄: /dev、/proc、/bin、/etc、 /lib、/usr
OverlayFS 存儲原理
OverlayFS 結(jié)構(gòu)分為三個層: LowerDir、Upperdir、MergedDir
1.LowerDir (只讀)
只讀的 image layer,其實(shí)就是 rootfs, 在使用 Dockfile 構(gòu)建鏡像的時候就定好了
2.Upperdir (讀寫)
upperdir 則是在 lowerdir 之上的一層, 為讀寫層。容器在啟動的時候會創(chuàng)建, 所有對容 器的修改, 都是在這層。比如容器啟動寫入的日志文件,或者是應(yīng)用程序?qū)懭氲呐R時文件
3.MergedDir (展示)
merged 目錄是容器的掛載點(diǎn),在用戶視角能夠看到的所有文件
修改exit狀態(tài)的docker容器
查看容器狀態(tài) sudo docker ps -a,可以看到當(dāng)前容器是關(guān)閉的

查看容器日志,查找關(guān)閉原因
sudo docker logs <容器名 或 容器ID>

獲取容器文件存儲的路徑
sudo docker inspect <容器名或容器ID> | grep -A 10 GraphDriver-A
表示在搜索到該關(guān)鍵詞后,打印下面 n 行

mergedDir 是不存在的,我們需要修改的文件都存儲在 UpperDir 目錄下

總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker之如何設(shè)置日志文件大小及個數(shù)
這篇文章主要介紹了docker之如何設(shè)置日志文件大小及個數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
docker image tag為什么出現(xiàn)none的原因及解決
當(dāng)我們使用docker加載新的鏡像時,有時候會發(fā)現(xiàn)Repository和Tag名稱都為none的情況,這通常是由于沒有指定正確的標(biāo)簽名稱或者倉庫名稱所導(dǎo)致的,本文主要介紹了docker image tag為什么出現(xiàn)none的原因及解決,感興趣的可以了解一下2023-10-10
Docker Compose快速部署多容器服務(wù)實(shí)戰(zhàn)的實(shí)例詳解
使用 Docker Compose 可以輕松、高效的管理容器,它是一個用于定義和運(yùn)行多容器 Docker 的應(yīng)用程序工具,本文給大家介紹Docker Compose快速部署多容器服務(wù)實(shí)戰(zhàn),感興趣的朋友一起看看吧2022-02-02
docker容器中cron任務(wù)未執(zhí)行的原因分析及解決
在Ubuntu?22.04鏡像中cron任務(wù)執(zhí)行失敗,可能與pam權(quán)限或文件權(quán)限設(shè)置有關(guān),解決方法包括動態(tài)加載任務(wù)至crontab及將文件權(quán)限設(shè)為600(容器默認(rèn)umask=0022),后者因權(quán)限沖突導(dǎo)致執(zhí)行失敗,推薦此方案2025-08-08
Docker部署Minio集群的實(shí)現(xiàn)步驟
本文介紹 Docker Compose 部署 Minio 集群的方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-05-05
Docker環(huán)境中部署n8n支持Python節(jié)點(diǎn)(兩種部署方式)
本文介紹如何在Docker環(huán)境中部署n8n工作流自動化工具,并確保支持 Code in Python (Native) 節(jié)點(diǎn),本文給大家分享兩種常見的部署方式,感興趣的朋友跟隨小編一起看看吧2026-02-02
如何給一個正在運(yùn)行的Docker容器動態(tài)添加Volume
這篇文章主要介紹了如何給一個正在運(yùn)行的Docker容器動態(tài)添加Volume,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03
docker配置鏡像Docker pull時報錯:https://registry-1.docker.io/v
Docker拉鏡像報錯的原因可能是網(wǎng)絡(luò)問題、認(rèn)證問題、注冊中心URL不正確或注冊中心服務(wù)不可用,解決方法包括重載和重啟Docker服務(wù)2026-01-01

