docker 容器不断重启,查看不了日志的问题

366 阅读1分钟

docker 容器不断重启,查看不了日志的问题

问题描述

我用docker-compose 启动一个服务,它不断地重启,无法使用 docker logs 命令查看容器的日志,定位问题

解决过程

首先使用docker-compose log 查看日志

docker logs查看不了日志,使用 docker-compose logs -f -t --tail=10 <服务名> 查看服务的日志。

可惜我这个服务的容器,没有日志打印出来,这个方法也不行。

查看docker-compose.yml 中是否定义了资源限制

服务启动不起来,可能是资源不够。查看docker-compose.yml 有没有设置最低资源要求。

我这个服务也没有这个限制。

进入容器进行测试

既然服务启动不起来,那我就用这个镜像,启动容器的时候,不启动服务;然后进入容器中,命令行启动服务,查看控制台输出。

  1. 修改docker-compose.yml 启动命令为下面的命令,这样容器启动后不会退出 command: ["tail", "-f", "/dev/null"]

  2. 注释掉自动重启的部分

#restart: on-failure
#healthcheck:
#  test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
#  start_period: 90s
#  interval: 30s
#  timeout: 20s
#  retries: 3
  1. 启动该服务 docker-compose up -d

  2. 进入该容器 docker exec -it xxx bash

xxx 是容器名

  1. 命令行启动服务 我这边定位到是因为cpu架构的问题,启动不了该服务。