docker容器启动失败如何查看日志
目录
- docker容器启动失败查看日志
- 这个时候如何排查问题呢?
- 发现有更简单的命令
- 日志查看 docker容器启动失败原因
- 1.查看异常容器id
- 2.查看日志所在路径
- 3.打开错误日志,查看详情
- 总结
docker容器启动失败查看日志
在使用docker的时候,在某些未知的情况下可能启动了容器,但是过了没几秒容器自动退出了。
这个时候如何排查问题呢?
通常碰到这种情况无非就是环境有问题或者应用有问题,应用问题再本地可以进行调试解决,但是环境问题就比较头疼了。
这个时候我们就需要查看容器的日志来进行排查。
这里我们的容器id=60f486ec7c33
我们可以通过如下命令来获取容器的日志地址吧
docker inspect --format '{{.LogPath}}' 60f486ec7c33
然后通过cat命令查看上述命令找到的日志地址
cat /var/lib/docker/containers/97069f94437b86b50341f8253d85f426884315c3d027f7b7fa975751c7d8e18e/97069f94437b86b50341f8253d85f426884315c3d027f7b7fa975751c7d8e18e-json.log
命令解释:
docker inspect 用于获取容器/镜像的元数据。其中就包含容器日志的地址,上述命令只是增加了一个–format参数用于将日志地址过滤出来。
docker inspect 中有很多信息,具体的大家可以自行查看。
发现有更简单的命令
docker logs 60f486ec7c33
日志查看 docker容器启动失败原因
1.查看异常容器id
docker ps -a
-- id:e85e4839fcde
2.查看日志所在路径
docker inspect --format '{{.LogPath}}' e85e4839fcde
3.打开错误日志,查看详情
cat /var/lib/docker/containers/e85e4839fcded360bf5f788f851ce90853b3cf8b8731ab1336cb798b68d9221d/e85e4839fcded360bf5f788f851ce90853b3cf8b8731ab1336cb798b68d9221d-json.log
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Docker启动常用容器命令及配置详解
目录 Docker 容器相关命令 Docker 启动mysql Docker 启动nginx Docker 启动redis Docker 启动rabbitmq Docker 启动Kafka Docker 启动tomcat Docker 启动jar包 Docker 启动PostgreSQL Docker 启动ElasticSearch Docker 容器相关命令 容器是基于Docker镜像被创建的. docker run [Options] image运行容器 docker run [Option
-
docker容器因报错无法启动问题的检查及修复容器错误并重启
目录 问题复现 解决方法 总结 问题复现 使用: sudo docker ps -a 查看当前的docker容器: 我们想启动name为[docker-mongo]的这个容器,因此要执行 sudo docker start docker-mongo 但是执行后仍旧没有重启,大概率是重启的时候报错了,查看日志: sudo docker logs -f docker-mongo 可以看到其中有这样的日志: {"t":{"$date":"2022-12-29T0
-
docker启动容器服务后访问失败的解决方案
目录 第一种原因及修改方法 第二种:容器启动没有问题,并且在容器内部可以进行容器访问,但是外部无法进行访问 总结 关于docker启动容器服务之后,宿主机访问失败(解决方法) 注:在进行docker容器启动宿主机进行容器访问时,无需进行网络的配置,docker容器在启动时会自动解决 第一种原因及修改方法 在进行启动的时候,启动语句中没有进行端口映射,导致在进行访问的时候无法找到正确的端口 正确的镜像的启动方式为 docker run --name 设置容器名 -it -d -p [宿主机端口号]
-
如何解决docker容器启动失败
问题:电脑重启之后,docker里面的mysql容器重启不了,不知道是什么原因 上面的步骤:如果sudo docker start name 能重新启动,也就是输入:docker ps 能看到自己所需要的服务已经开启,那就不需要再进行下面的步骤了,如果刚好像上面那样,那就接着看下文: 解决办法:删除启动不了的容器,然后再重新运行镜像. 注意此时的容器名已经变为mysql了,为关闭状态,再运行镜像时还是运行不了,但此时再启动镜像时就可以启动了 内容补充 1.查看docker占用的挂载点 cat /
-
详解Shell脚本控制docker容器启动顺序
1.遇到的问题 在分布式项目部署的过程中,经常要求服务器重启之后,应用(包括数据库)能够自动恢复使用.虽然使用docker update --restart=always containerid能够让容器自动随docker启动,但是并不能保证是在数据库启动之后启动,如果数据库未启动,那么将导致应用启动失败;网上还有一种解决方法是通过docker-compose容器编排来控制启动顺序,这个博主研究的比较少. 2.解决思路 使用Shell脚本来控制,思路大致如下 探测数据库端口来检验数据库是否启动成
-
docker.service启动失败:Unit not found的原因及解决办法
背景 因为最近一直在折腾Kubernetes集群版本升级.Docker版本升级,所以不停的把测试环境安装.还原.升级.降级,简直乱的不行.终于,在测试Docker版本升级后,启动Docker时,遇到了docker.service: Unit not found.问题虽然不大,但是却折磨了我几个小时,所以在此mark一下. 操作系统:Red Hat Enterprise Linux 7 原因1:docker.socket 最初在启动docker时遇到问题,是因为docker.socket引起的,虽
-
Docker Desktop启动失败的解决(Docker failed to initialize Docker Desktop is shutting down)
目录 问题记录: 解决方法: 问题记录: 有一段时间没有使用docker了,突然要用到结果发现docker desktop都打不开了,会弹出如下错误: 一开始考虑的是会不会是docker版本太老的问题,使用docker version查了一下版本,发现cmd中docker指令还可以输出,但是docker version显示版本信息的同时也会有连接失败的错误信息存在.(而且查了一下版本并不落后,看来还是要解决初始化问题) docker version错误信息: error during conne
-
docker容器启动设置固定IP的实现
docker安装以后的网络类型 [root@insure updev]# docker network ls NETWORK ID NAME DRIVER SCOPE 14da40175b01 bridge bridge local 65fb78c28e4f host host local e0d0c90c1462 none null local 说明:桥接网络默认情况下启动的Docker容器,都是使用 bridge,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对
-
Docker容器启动时初始化Mysql数据库的方法
1. 前言 Docker在开发中使用的越来越多了,最近搞了一个Spring Boot应用,为了方便部署将Mysql也放在Docker中运行.那么怎么初始化 SQL脚本以及数据呢? 我这里有两个传统方案. 第一种方案是在容器启动后手动导入,太low了不行.第二种在Spring Boot客户端连接Mysql容器时初始化数据库,你可以参考使用flyway进行数据库版本控制一文,但是这依赖客户端的能力.能不能做到Mysql容器启动时就自己初始化数据库呢?当然可以!今天就来演示一下.全部代码见文末. 2.
-
解决docker容器启动后马上退出的问题
最近在看docker如何让容器在启动时直接运行某些进程,后来发现Dockerfile可以在容器启动的时候指定容器运行命令. CMD指定,但是每个Dockerfile只能有一条CMD指令,如果指定了多条CMD指定,只有最后一条会被执行. 于是就想了一个办法,在写了一个脚本,在脚本里面启动多个进程,在Dockerfile里运行这个脚本. 最后证明这个方法是可行的,在实验过程中遇到一个问题,容器启动后会马上停止. 经查阅资料: Docker容器同时只能管理一个进程,如果这个进程退出那么容器也就退出了,
-
tomcat启动异常:子容器启动失败(a child container failed during start)
在学习过程中,出现这个问题,上网查了一下,总结以下几种解决方案,并找出自己的问题. 1.没有清理之前maven项目的历史. 解决方法:执行clean命令,然后重新启动项目. 操作:添加maven helper插件后,右键→run maven→clean ps:关于maven项目历史是啥我不太了解. 2.pom.xml文件中servlet-api依赖导入问题. 解决方法:在依赖中添加<scope>标签,内容为provided. 示例:<scope>provided</scope
-
docker容器启动后添加端口映射
概要 网上有许多人在查找关于容器启动后能否进行端口映射的问题.我曾经也问过度娘,很遗憾我没找到.本文就这个问题给出一个解决方法,旨在抛砖引玉.本文的思路是使用iptables的端口转发,这也是docker端口映射内部的实现机制,只不过我是显示地写出来罢了,为的就是让查找这个问题的人对docker的端口映射有一个直观的了解. 结论:容器启动后是可以添加端口映射的,但不建议手工添加,最好使用docker提供的功能. 步骤 创建两个容器并进行了端口映射,结果如图所示: 假如,我start一个容器,其内
-
详解利用ELK搭建Docker容器化应用日志中心
概述 应用一旦容器化以后,需要考虑的就是如何采集位于Docker容器中的应用程序的打印日志供运维分析.典型的比如SpringBoot应用的日志 收集.本文即将阐述如何利用ELK日志中心来收集容器化应用程序所产生的日志,并且可以用可视化的方式对日志进行查询与分析,其架构如下图所示: 架构图 镜像准备 镜像准备 ElasticSearch镜像 Logstash镜像 Kibana镜像 Nginx镜像(作为容器化应用来生产日志) 开启Linux系统Rsyslog服务 修改Rsyslog服务配置文件: v
随机推荐
- jQuery操作Table技巧大汇总
- AngularJS入门教程之XHR和依赖注入详解
- 工作中常用的js、jquery自定义扩展函数代码片段汇总
- java 同步器SynchronousQueue详解及实例
- java中常用工具类之字符串操作类和MD5加密解密类
- Jdbc的步骤以及简单实现代码
- java编程之单元测试(Junit)实例分析(附实例源码)
- javascript实现简单加载随机色方块
- 解决bootstrap导航栏navbar在IE8上存在缺陷的方法
- JS控制伪元素的方法汇总
- 创建第一个ASP.NET应用程序(第1节)
- Android 以任意比例裁剪图片代码分享
- PHP获取汉字笔画数功能【测试可用】
- Android开发之设置开机自动启动的几种方法
- 浅谈c语言中类型隐性转换的坑
- C和指针小结(推荐)
- Python实现读取txt文件并画三维图简单代码示例
- Python+request+unittest实现接口测试框架集成实例
- JS实现获取当前所在周的周六、周日示例分析
- element-ui表格合并span-method的实现方法