docker 日常使用(进入容器、查看日志)
目录
日志查看
进入容器
docker exec
docker attach
日志查看
用法:
docker logs [OPTIONS] CONTAINER
docker logs -f --tail 10 CONTAINER
常用选项:
- -f, --follow: 跟随日志输出(类似于 tail -f)。
- --since: 从指定时间开始显示日志。
- -t, --timestamps: 显示日志时间戳。
- --tail: 仅显示日志的最后部分,例如 --tail 10 显示最后 10 行。
- --details: 显示提供给日志的额外详细信息。
- --until: 显示直到指定时间的日志。
例子:
查看指定时间后的日志,只显示最后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
进入容器
在使用 -d
参数时,容器启动后会进入后台。
某些时候需要进入容器进行操作,包括使用 docker attach
命令或 docker exec
命令,
推荐大家使用 docker exec
命令,原因会在下面说明。
docker exec
相当于进入容器并开启一个新的终端,可以在里面操作。
docker exec -it 容器id /bin/sh
docker exec -it 容器id /bin/bash
退出容器:exit