Docker日志相关命令

日志详情 --details

docker logs 默认就是 --details

docker logs --details 容器id
docker logs 容器id

最后n行日志  -n --tail

–tail 是 Docker Logs 命令的一个选项,用于限制显示容器日志的行数。通过指定 --tail 后面的数字参数,你可以只显示最后几行的日志内容。-n和–tail效果一样

docker logs --tail 3 容器id
docker logs -n 3 容器id
实时日志输出 -f --follow

–follow 是 Docker Logs 命令的一个选项,用于实时跟踪容器的日志输出。当你在命令行中执行 docker logs --follow(或简写为 docker logs -f)时,它将以实时方式显示容器的日志,并持续输出新的日志内容。

docker logs --follow 容器id
docker logs -f 容器id
实时输出最后n行日志
docker logs -f --tail n 容器id
显示从某个时刻以来的日志 -since

–since 是 Docker Logs 命令的一个选项,用于限制显示容器日志的起始时间。通过指定 --since 后面的时间参数,你可以只显示从指定时间点后生成的日志内容。

注意,时间参数可以使用多种格式,如 ISO 8601(例如:“2022-01-01T00:00:00”)、UNIX 时间戳、相对时间(例如:“1h ago” 表示一小时前)等。

// 查看从2024-03-28T11:43:00.015后的日志
docker logs --since='2024-03-28T11:43:00.015' 容器id
// 查看最近5分钟的日志
docker logs --since='5m' 容器id
显示指定时刻之前的日志 --until

–until 是 Docker Logs 命令的一个选项,用于限制显示容器日志的结束时间。通过指定 --until 后面的时间参数,你可以只显示在指定时间点之前生成的日志内容

注意,时间参数可以使用多种格式,如 ISO 8601(例如:“2022-01-01T00:00:00”)、UNIX 时间戳、相对时间(例如:“1h ago” 表示一小时前)等。

显示到2024-03-28 11:25:55为止的日志
docker logs --until='2024-03-28 11:25:55' 容器id
显示5分钟前的日志
docker logs --until='5m' 容器id
日志过滤 grep

docker logs 命令本身并不支持直接使用 grep 进行过滤。然而,你可以通过结合使用管道(|)和 grep 命令来在 Docker 日志中进行文本匹配和过滤。

docker logs 容器id | grep '2024-03-28 11:25:58'
docker logs 容器id| grep 2024 | grep 03 | grep 184

打印匹配行的前后几行

 # 打印匹配行的前后3行
docker logs 容器id| grep -3 '2024-03-28 11:25:58.184' 
 # 打印匹配行的前后3行
docker logs 容器id| grep -C 3 '2024-03-28 11:25:58.184' 
# 打印匹配行的前后3行
docker logs 容器id| grep -A 3 -B 3 '2024-03-28 11:25:58.184'  
 # 打印匹配行的后3行
docker logs 容器id| grep -A 3 '2024-03-28 11:25:58.184' 
 # 打印匹配行的前3行
docker logs 容器id| grep -B 3 '2024-03-28 11:25:58.184' 

热修复命令

先将宿主机上的目标文件复制到容器里面

docker cp RemovalViaTMServiceImpl.class 容器id:/opt/logs/

进入待热修复的容器

docker exec -it 容器id /bin/bash

进入目标文件目录并启动arthas

java -jar arthas-boot.jar

如果没有下载arthas,则先使用以下命令下载,然后再启动arthas

wget https://alibaba.github.io/arthas/arthas-boot.jar

执行热修复命令

redefine /opt/logs/RemovalViaTMServiceImpl.class

### Docker 容器管理常用命令及用法 #### 查看正在运行的容器列表 为了获取当前所有活动中的容器详情,可以利用 `docker ps` 命令来展示这些信息。如果希望看到所有的容器(不仅限于正在运行),则应采用带有 `-a` 参数的形式 `$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES`[^4]。 #### 创建并启动新容器 当需要新建一个容器实例时,可以通过如下方式实现: ```bash docker run --name=your_container_name -d image_name[:tag] ``` 这里 `--name` 后面跟的是自定义的名字;而 `-d` 表示让容器以后台模式运行;最后是要基于哪个镜像创建此容器及其标签版本号[^3]。 #### 以交互方式进入已存在的容器内部 对于那些已经在后台运行着的服务型应用来说,有时可能想要临时进入到其环境里做一些调试工作或是其他操作,则需要用到 `docker exec` 工具: ```bash docker exec -it container_id_or_name /bin/bash ``` 上述指令里的 `-it` 是为了让终端保持打开状态以便能够接收输入输出流,同时指定了要连接的目标容器以及所使用的shell程序路径[^1]。 #### 将本地文件导出为tar包形式保存下来 假设有一个场景是打算迁移某个特定的应用服务到另一台机器上去,在这种情况下就可以借助 `docker save` 功能把整个应用程序连同依赖一起打包起来方便传输: ```bash docker save -o your_file.tar source_image:version_tag ``` 这条语句的作用就是将名为 `source_image` 的镜像按照给定的版本标记存档至指定位置成为 `.tar` 文件[^2]。 #### 获取容器的日志记录 每当遇到问题排查的时候,查看日志往往是最直接有效的方法之一。针对Docker而言,有专门用于读取容器标准错误/输出流内容的功能——即通过下面这行代码完成: ```bash docker logs container_id_or_name ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值