docker容器自動(dòng)退出重啟報(bào)錯(cuò)問題及解決
docker容器自動(dòng)退出重啟報(bào)錯(cuò)
docker容器自動(dòng)退出的原因是什么
為何docker剛啟動(dòng)起來就退出了
是因?yàn)?沒有一個(gè)可以支撐docker 持久運(yùn)行下去的命令。
退出原因
1、docker容器運(yùn)行必須有一個(gè)前臺(tái)進(jìn)程, 如果沒有前臺(tái)進(jìn)程執(zhí)行,容器認(rèn)為空閑,就會(huì)自行退出
2、容器運(yùn)行的命令如果不是那些一直掛起的命令( 運(yùn)行top,tail、循環(huán)等),就是會(huì)自動(dòng)退出
3、這個(gè)是 docker 的機(jī)制問題
個(gè)人遇到的問題
我這里使用的mysql鏡像,停止鏡像之后輸入啟動(dòng)命令發(fā)現(xiàn)報(bào)錯(cuò)

正確解決辦法應(yīng)該是
docker restart 鏡像名
之前的啟動(dòng)命令沒有實(shí)現(xiàn)交互運(yùn)行,所以一旦沒有前臺(tái)進(jìn)程執(zhí)行,容器認(rèn)為空閑,就會(huì)自行退出,我再次輸入啟動(dòng)命令之后出現(xiàn)報(bào)錯(cuò),原因是沒有移除容器

輸入命令
docker ps -a
發(fā)現(xiàn)容器沒有移除

先停止容器,然后在移除容器
docker stop 鏡像id
docker rm 鏡像id
移除再次輸入docker ps -a 已經(jīng)移除成功

重新輸入啟動(dòng)命令
docker run --name mysql8.0 -d -it -p 3306:3306 mysql:8.0.21 /bin/bash
啟動(dòng)成功!

docker記錄啟動(dòng)容器的報(bào)錯(cuò)處理
查看日志
語(yǔ)法:
docker logs 容器ID或容器的名
沒報(bào)錯(cuò),啟動(dòng)立馬關(guān)閉
問題:
1、docker容器運(yùn)行必須有一個(gè)前臺(tái)進(jìn)程, 如果沒有前臺(tái)進(jìn)程執(zhí)行,容器認(rèn)為空閑,就會(huì)自行退出
2、容器運(yùn)行的命令如果不是那些一直掛起的命令( 運(yùn)行top,tail、循環(huán)等),就是會(huì)自動(dòng)退出
3、這個(gè)是 docker 的機(jī)制問題
解決:
1,把剛剛的容器刪了:docker rm 容器名或ID
2,docker run -p 6666:80 -dit --name=test nginx
- 添加-it 參數(shù)交互運(yùn)行
- 添加-d 參數(shù)后臺(tái)運(yùn)行
- 這樣就能啟動(dòng)一個(gè)一直停留在后臺(tái)運(yùn)行的nginx了
容器里面的配置出錯(cuò),進(jìn)不去容器
思路:
cd進(jìn)行/var/lib/docker,這個(gè)文件是docker存的,搜索你要想必的文件,然后修改這個(gè)配置
- 1: find . -name default.conf
- 2: vi 查出來的路徑 //修改
啟動(dòng)成功,外面訪問不到
看看是不是防火器的問題:
systemctl stop firewalld.service 停止防火墻 systemctl disable firewalld.service 禁止防火墻開機(jī)啟動(dòng) firewall-cmd --state 檢測(cè)防火墻是否關(guān)閉 systemctl list-unit-files | grep firewalld.service 查看有沒有禁止防火墻開機(jī)自啟
啟動(dòng)報(bào)錯(cuò)1
[root@localhost ~]# docker start mynginx
Error response from daemon: driver failed programming external connectivity on endpoint mynginx (1f5125fc7eddc9b34ce8f8f4417186d4ce1382643b5001fc468d17dd64f34f15): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8888 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.
因?yàn)樵趩?dòng)docker容器的時(shí)候或者做docker配置的時(shí)候,還對(duì)防火墻設(shè)置重新啟動(dòng)等配置,這樣會(huì)清除docker的相關(guān)配置,導(dǎo)致在查詢防火墻規(guī)則的時(shí)候顯示不到docker的鏈。
解決:重啟docker
systemctl restart docker
有時(shí)候重啟沒效果可以選擇停止docker,在啟動(dòng)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker Registry私有倉(cāng)庫(kù)簡(jiǎn)單搭建過程
本文介紹了如何在本地搭建Docker私有Registry倉(cāng)庫(kù),并實(shí)現(xiàn)鏡像的上傳和管理,通過私有倉(cāng)庫(kù),可以方便地在本地網(wǎng)絡(luò)中存儲(chǔ)和分發(fā)Docker鏡像,提高開發(fā)和部署效率2025-12-12
使用Docker容器化Flask應(yīng)用的簡(jiǎn)單示例
在當(dāng)今的軟件開發(fā)中,容器化技術(shù)已經(jīng)變得不可或缺,Docker 作為容器化領(lǐng)域的佼佼者,為開發(fā)者提供了一種高效、便捷的方式來部署和運(yùn)行應(yīng)用程序,本文將通過一個(gè)簡(jiǎn)單的 Flask 應(yīng)用示例,展示如何使用 Docker 將 Python 應(yīng)用程序容器化,需要的朋友可以參考下2025-09-09
Docker深度清除鏡像緩存overlay2的實(shí)現(xiàn)
維清理鏡像是通過命令?docker?rm?i?刪除鏡像的,但是這條命令不會(huì)刪除docker?build命令產(chǎn)生的緩存文件,本文主要介紹了Docker深度清除鏡像緩存overlay2的實(shí)現(xiàn),感興趣的可以了解一下2023-12-12
Docker mongoDB 4.2.1 安裝并收集springboot日志的步驟詳解
這篇文章主要介紹了Docker mongoDB 4.2.1 安裝并收集springboot日志,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Docker配置容器開機(jī)自啟或服務(wù)重啟后自啟兩種常見方法
Docker容器自啟動(dòng)是指在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)并運(yùn)行指定的Docker容器,這通常用于確保關(guān)鍵服務(wù)始終可用,無需手動(dòng)干預(yù),這篇文章主要介紹了Docker配置容器開機(jī)自啟或服務(wù)重啟后自啟的?兩種常見方法,需要的朋友可以參考下2025-08-08
Docker compose安裝部署創(chuàng)建自定義網(wǎng)絡(luò)使用舉例
這篇文章主要為大家介紹了Docker compose安裝部署創(chuàng)建自定義網(wǎng)絡(luò)使用舉例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
使用Docker快速部署openGauss數(shù)據(jù)庫(kù)的詳細(xì)操作流程
本文介紹使用Docker部署openGauss數(shù)據(jù)庫(kù)的全流程,包括鏡像獲取、容器運(yùn)行、連接測(cè)試、數(shù)據(jù)持久化配置及常見問題解決,突出其高性能、高安全特性與簡(jiǎn)化安裝的優(yōu)勢(shì),感興趣的朋友跟隨小編一起看看吧2025-06-06

