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

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

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

先停止容器,然后在移除容器
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或容器的名
沒(méi)報(bào)錯(cuò),啟動(dòng)立馬關(guān)閉
問(wèn)題:
1、docker容器運(yùn)行必須有一個(gè)前臺(tái)進(jìn)程, 如果沒(méi)有前臺(tái)進(jìn)程執(zhí)行,容器認(rèn)為空閑,就會(huì)自行退出
2、容器運(yùn)行的命令如果不是那些一直掛起的命令( 運(yùn)行top,tail、循環(huán)等),就是會(huì)自動(dòng)退出
3、這個(gè)是 docker 的機(jī)制問(wèn)題
解決:
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 查出來(lái)的路徑 //修改
啟動(dòng)成功,外面訪問(wèn)不到
看看是不是防火器的問(wèn)題:
systemctl stop firewalld.service 停止防火墻 systemctl disable firewalld.service 禁止防火墻開(kāi)機(jī)啟動(dòng) firewall-cmd --state 檢測(cè)防火墻是否關(guān)閉 systemctl list-unit-files | grep firewalld.service 查看有沒(méi)有禁止防火墻開(kāi)機(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)致在查詢(xún)防火墻規(guī)則的時(shí)候顯示不到docker的鏈。
解決:重啟docker
systemctl restart docker
有時(shí)候重啟沒(méi)效果可以選擇停止docker,在啟動(dòng)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker在windows創(chuàng)建卷后本地找不到的完美解決方法
這篇文章主要介紹了docker在windows創(chuàng)建卷后本地找不到的完美解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-02-02
Docker基于macvlan實(shí)現(xiàn)跨主機(jī)容器通信
這篇文章主要介紹了Docker基于macvlan實(shí)現(xiàn)跨主機(jī)容器通信,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
docker初始化安裝時(shí)的WSL兩個(gè)問(wèn)題詳解
這篇文章主要給大家介紹了關(guān)于docker初始化安裝時(shí)的WSL兩個(gè)問(wèn)題,文中通過(guò)代碼以及圖文介紹的非常詳細(xì),對(duì)初學(xué)者學(xué)習(xí)Docker,非常有幫助,需要的朋友可以參考下2023-12-12
ssh 直接登錄docker容器的操作方法(不用通過(guò)宿主機(jī)進(jìn)入)
這篇文章主要介紹了ssh 直接登錄docker容器的操作方法(不用通過(guò)宿主機(jī)進(jìn)入),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06
詳解centos7 docker1.12安裝私有倉(cāng)庫(kù)
本篇文章主要介紹了centos7 docker1.12安裝私有倉(cāng)庫(kù),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
使用Docker Compose 實(shí)現(xiàn)nginx負(fù)載均衡的方法步驟
這篇文章主要介紹了使用Docker Compose 實(shí)現(xiàn)nginx負(fù)載均衡的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
docker可視化管理工具portainer忘記密碼重置教程的實(shí)現(xiàn)
本文主要介紹了docker可視化管理工具portainer忘記密碼重置教程的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08

