pojin (ID: 1)
头衔:论坛坛主
等级:究级天王[荣誉]
积分:1301
发帖:99 篇
来自:保密
注册:2022-08-28 23:20:57
造访:2025-03-23 21:18:24
[ 第 1 楼 ]
回复
docker 查看日志的几个方式:
(1)docker logs --tail=1000 容器名称 (查看容器前多少行的日志)(推荐)
(2)docker 容器启动后,可以进入以下位置查看日志(/var/lib/docker/containers/容器ID/容器ID-json.log)(进入容器内部查看日志)
(3)#查看 compose 所有容器的运行日志
docker-compose -f docker-compose-app.yml logs -f
(4)#查看 compose 下某个容器的运行日志
docker-compose -f docker-compose-app. yml logs -f<服务名>
(5)# 也可以把 compose 的容器日志输出到日志文件里去,然后用 tail -f 随时查看
docker-compose -f docker-compose-app. yml logs -f >> myDockerCompose.log &

2022-11-22 11:44:06

IP:已设置保密
pojin (ID: 1)
头衔:论坛坛主
等级:究级天王[荣誉]
积分:1301
发帖:99 篇
来自:保密
注册:2022-08-28 23:20:57
造访:2025-03-23 21:18:24
[ 第 2 楼 ]
回复
docker 命令 查看启动进程及日志
查看正在运行的docker容器有哪些:
docker ps
查看所有docker容器,包括不在running状态的:
docker ps -a
查看具体某一个容器的日志:
docker logs 参数 容器id
其中参数可选择的有:
-f follow 表示实时显示日志
-t timestamp 表示显示时间戳
--tail=n 或 --tail n 表示显示末尾n行
例如:docker logs -f --tail=200 xxxx,表示实时加载日志信息,并且仅显示最后200行。
查找日志文件中含有特定字符串的行:
docker logs 参数 容器id | grep str
查找日志文件中含有特定字符串的行,并且输出到指定文件out.txt中:
docker logs 参数 容器id | grep str >> out.txt
根据时间查看log:
docker logs --since 2020-04-10T19:50:00 container
docker logs --since 2020-04-10T19:30:00 --until 2020-04-10T20:05:00 contailer
--since 从指定时间点到最新的日志
--until 指定结束时间点

2022-11-22 11:57:17

IP:已设置保密
pojin (ID: 1)
头衔:论坛坛主
等级:究级天王[荣誉]
积分:1301
发帖:99 篇
来自:保密
注册:2022-08-28 23:20:57
造访:2025-03-23 21:18:24
[ 第 3 楼 ]
回复
Docker logs 命令——查看docker容器日志
用法:
docker logs [OPTIONS] CONTAINER
名称,简写 默认 描述
--details 显示更多的信息
--follow , -f 跟踪日志输出
--since 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail , -n all 从日志末尾显示的行数,默认为all
--timestamps , -t 显示时间戳
--until 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
例子:
查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
查看最近30分钟的日志:
docker logs --since 30m CONTAINER_ID
查看某时间之后的日志:
docker logs -t --since="2021-08-18T11:46:37" CONTAINER_ID
查看某时间之后最新的100条日志:
docker logs -t --since="2021-08-18T11:46:37" --tail=100 CONTAINER_ID
查看某时间段日志:
docker logs -t --since="2021-08-18T11:46:37" --until "2021-08-18T11:47:37" CONTAINER_ID
使用 grep 过滤日志-1:
docker logs CONTAINER_ID | grep 'error'
使用 grep 过滤日志-2:
docker logs CONTAINER_ID | grep -10 'error' # 打印匹配行的前后10行
docker logs CONTAINER_ID | grep -C 10 'error' # 打印匹配行的前后10行
docker logs CONTAINER_ID | grep -A 10 -B 10 'error' # 打印匹配行的前后10行
docker logs CONTAINER_ID | grep -A 10 'error' # 打印匹配行的后10行
docker logs CONTAINER_ID | grep -B 10 'error' # 打印匹配行的前10行
把日志写入文件:
docker logs -t CONTAINER_ID | grep 'error' >> logs_error.txt

2022-11-22 13:57:01

IP:已设置保密
pojin (ID: 1)
头衔:论坛坛主
等级:究级天王[荣誉]
积分:1301
发帖:99 篇
来自:保密
注册:2022-08-28 23:20:57
造访:2025-03-23 21:18:24
[ 第 4 楼 ]
回复
docker port ID
netstat -ntlp

2022-11-22 16:15:44

IP:已设置保密
pojin (ID: 1)
头衔:论坛坛主
等级:究级天王[荣誉]
积分:1301
发帖:99 篇
来自:保密
注册:2022-08-28 23:20:57
造访:2025-03-23 21:18:24
[ 第 5 楼 ]
回复
docker经常出问题,无故启动失败,只能靠log查找问题。下面就是几个常用的 log 操作技巧:
1. 显示所有 log
# 显示某个容器的所有log
$ docker logs [OPTIONS] <CONTAINER>
# 显示 docker-compose 启动的所有容器的log
$ docker-compose logs
2. 显示实时 log
效果和Linux的 tail-f filename 一样,可以把最新内容刷新显示到屏幕上。
$ docker logs -f <CONTAINER>
3. 使用 tail 查看 log 尾部
效果和Linux的 tail-n20filename 一样,显示最后20行的内容。
$ docker logs –tail 20 <CONTAINER>
4. 使用 grep 过滤 log
例如查找所有包含 “error” 的log:
$ docker logs | grep error
5. 根据时间查看 log
比如只想查看某个时间点之后的日志,使用 –since 选项,显示从指定时间点到最新的日志:
$ docker logs –since 2018-09-25T12:01:46.452616Z <CONTAINER>
–since指定了开始时间点,还可以指定结束时间点,使用选项 –until,显示二者之间的日志:
$ docker logs –since 2018-09-25T12:01:48.551341Z –until 2018-09-25T12:01:48.561714Z <CONTAINER>
6. 组合使用
这些选项都可以放在一起使用,例如:
$ docker logs –tail 10 <CONTAINER> | grep info
$ docker logs -f –since xxx –tail=10 <CONTAINER>
7. 把日志写入文件
把 error 日志都写到指定文件:
$ docker logs -t <CONTAINER> | grep error >> logs_error.txt

2022-11-23 10:34:02

IP:已设置保密
pojin (ID: 1)
头衔:论坛坛主
等级:究级天王[荣誉]
积分:1301
发帖:99 篇
来自:保密
注册:2022-08-28 23:20:57
造访:2025-03-23 21:18:24
[ 第 6 楼 ]
回复
docker部署并启动了 springboot服务,容器启动正常,docker exec 也可以正常进入容器内部,但是docker logs 控制台并没有日志打印出来。
同样的,/var/lib/docker/containers目录下的对应容器目录中,也没有对应的 *-json.log日志文件生成。
原因:
docker容器日志输出到控制台发生阻塞
解决方法:
将docker版本升级至18.06以上!!
docker版本查看命令:
1.docker --version
2, docker info

2022-11-23 10:34:31

IP:已设置保密
pojin (ID: 1)
头衔:论坛坛主
等级:究级天王[荣誉]
积分:1301
发帖:99 篇
来自:保密
注册:2022-08-28 23:20:57
造访:2025-03-23 21:18:24
[ 第 7 楼 ]
回复
查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
查看最近30分钟的日志:
docker logs --since 30m CONTAINER_ID
查看某时间之后的日志:
docker logs -t --since="2018-02-08" CONTAINER_ID

2022-11-23 14:40:47

IP:已设置保密