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è)前臺進(jìn)程, 如果沒有前臺進(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)行,所以一旦沒有前臺進(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ò)處理
查看日志
語法:
docker logs 容器ID或容器的名
沒報(bào)錯(cuò),啟動(dòng)立馬關(guān)閉
問題:
1、docker容器運(yùn)行必須有一個(gè)前臺進(jìn)程, 如果沒有前臺進(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ù)后臺運(yùn)行
- 這樣就能啟動(dòng)一個(gè)一直停留在后臺運(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 檢測防火墻是否關(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í)候,還對防火墻設(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給容器添加新端口映射的兩種方法及常用命令舉例詳解
Docker是一個(gè)開源的應(yīng)用容器引擎,允許開發(fā)者打包和發(fā)布應(yīng)用到任何流行的Linux機(jī)器上,并實(shí)現(xiàn)虛擬化,這篇文章主要介紹了Docker給容器添加新端口映射的兩種方法及常用命令的相關(guān)資料,需要的朋友可以參考下2025-03-03利用Dockerfile部署SpringBoot項(xiàng)目的方法
這篇文章主要介紹了利用Dockerfile部署SpringBoot項(xiàng)目的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10如何使用?Dockerfile?創(chuàng)建一個(gè)簡單容器
這篇文章主要介紹了如何使用?Dockerfile?創(chuàng)建一個(gè)簡單容器,Dockerfile?是用于指導(dǎo)?docker?創(chuàng)建自定義?image?的一系列指令,是用于創(chuàng)建?image?的藍(lán)圖,下文更多詳細(xì)介紹需要的小伙伴可以參考一下2022-04-04docker中通過nginx+confd動(dòng)態(tài)生成配置的解決方案
這篇文章主要介紹了docker:nginx+confd動(dòng)態(tài)生成配置,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03