docker容器自动退出重启报错问题及解决

 更新时间:2023年07月27日 09:18:04   作者:于京京9909  
这篇文章主要介绍了docker容器自动退出重启报错问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

docker容器自动退出重启报错

docker容器自动退出的原因是什么

为何docker刚启动起来就退出了

是因为 没有一个可以支撑docker 持久运行下去的命令。

退出原因

1、docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出

2、容器运行的命令如果不是那些一直挂起的命令( 运行top,tail、循环等),就是会自动退出

3、这个是 docker 的机制问题

个人遇到的问题

我这里使用的mysql镜像,停止镜像之后输入启动命令发现报错

正确解决办法应该是

docker restart 镜像名

之前的启动命令没有实现交互运行,所以一旦没有前台进程执行,容器认为空闲,就会自行退出,我再次输入启动命令之后出现报错,原因是没有移除容器

输入命令

docker ps -a

发现容器没有移除

 先停止容器,然后在移除容器

 docker stop 镜像id
 docker rm 镜像id

移除再次输入docker ps -a 已经移除成功

重新输入启动命令

 docker run --name mysql8.0 -d -it -p 3306:3306 mysql:8.0.21 /bin/bash

启动成功! 

docker记录启动容器的报错处理

查看日志

语法:

docker logs 容器ID或容器的名

没报错,启动立马关闭

问题:

1、docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出

2、容器运行的命令如果不是那些一直挂起的命令( 运行top,tail、循环等),就是会自动退出

3、这个是 docker 的机制问题

解决:

1,把刚刚的容器删了:docker rm 容器名或ID

2,docker run -p 6666:80 -dit --name=test nginx

  • 添加-it 参数交互运行
  • 添加-d 参数后台运行
  • 这样就能启动一个一直停留在后台运行的nginx了

容器里面的配置出错,进不去容器

思路:

cd进行/var/lib/docker,这个文件是docker存的,搜索你要想必的文件,然后修改这个配置

  • 1: find . -name default.conf
  • 2: vi 查出来的路径 //修改

启动成功,外面访问不到

看看是不是防火器的问题:

systemctl stop firewalld.service 停止防火墙
systemctl disable firewalld.service 禁止防火墙开机启动
firewall-cmd --state 检测防火墙是否关闭 
systemctl list-unit-files | grep firewalld.service 查看有没有禁止防火墙开机自启 

启动报错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.

因为在启动docker容器的时候或者做docker配置的时候,还对防火墙设置重新启动等配置,这样会清除docker的相关配置,导致在查询防火墙规则的时候显示不到docker的链。

解决:重启docker

systemctl restart docker

有时候重启没效果可以选择停止docker,在启动

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • docker部署MySQL时无法启动问题的解决方法

    docker部署MySQL时无法启动问题的解决方法

    最近做项目,遇到这样问题,docker中的mysql不能启动,下面这篇文章主要给大家介绍了关于docker部署MySQL时无法启动问题的解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • 基于docker搭建redis集群的方法

    基于docker搭建redis集群的方法

    这篇文章主要介绍了基于docker搭建redis集群的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 在Window 10上安装Docker图文教程

    在Window 10上安装Docker图文教程

    Docker 是一个开源的应用容器引擎,功能十分强大,相信开发者们都不陌生。现在,docker已经发布了支持Windows10的稳定版本,对于用户来说是一个福音。接下来,小编就详细介绍Win10系统安装docker教程。
    2018-03-03
  • 详解Docker Compose配置文件参数

    详解Docker Compose配置文件参数

    Compose是一个用于定义和运行多容器Docker的工具,本文主要介绍了Docker Compose配置文件参数,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 解决docker容器重启之后/etc下某些配置文件被重置的问题

    解决docker容器重启之后/etc下某些配置文件被重置的问题

    这篇文章主要介绍了解决docker容器重启之后/etc下某些配置文件被重置的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker中Compose与Kubernetes的区别详解

    Docker中Compose与Kubernetes的区别详解

    这篇文章主要给大家介绍了关于Docker中Compose与Kubernetes区别的相关资料,Docker Compose和Kubernetes(简称k8s)都是容器编排工具,需要的朋友可以参考下
    2023-08-08
  • Docker Dockerfile 定制镜像的方法

    Docker Dockerfile 定制镜像的方法

    这篇文章主要介绍了Docker Dockerfile 定制镜像的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • docker部署postgresSQL主从的方法步骤

    docker部署postgresSQL主从的方法步骤

    本文主要介绍了docker部署postgresSQL主从的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • docker 容器上编译 go 程序提示找不到文件问题

    docker 容器上编译 go 程序提示找不到文件问题

    这篇文章主要介绍了docker 容器上编译 go 程序无法运行提示找不到文件问题,解决方法也很简单,感兴趣的朋友跟随脚本之家小编一起看看吧
    2018-05-05
  • 利用Dockerfile制作java运行环境的镜像的方法步骤

    利用Dockerfile制作java运行环境的镜像的方法步骤

    这篇文章主要介绍了利用Dockerfile制作java运行环境的镜像的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11

最新评论