docker日志及配置(二)

22 篇文章 0 订阅
11 篇文章 0 订阅

更多文章:WorkMap技术博客

双重日志

Docker Engine 19.03以及以前的版本,docker logs 命令仅适用于本地、json-file 和 journald 日志记录驱动程序。

Docker 20.10 及更高版本引入了“双重日志记录”,它使用本地缓冲区,可以对任何日志记录驱动程序使用 docker logs 命令。

关闭双重日志

  • 修改Docker daemon配置
    cat /etc/docker/daemon.json
    {
      "log-driver": "splunk",
      "log-opts": {
        "cache-disabled": "true",
        ... (options for "splunk" logging driver)
      }
    }
    
  • 启动容器
    docker run -d busybox --name testlog top
    
  • 执行docker logs命令读取日志(报错)
    docker logs 7d6ac83a89a0
    Error response from daemon: configured logging driver does not support reading
    

双重日志参数

  • cache-disabled 默认为"false"

    禁用本地缓存。布尔值作为字符串传递(true,1,0或false)。

  • cache-max-size 默认值:“20m”

    缓存的最大大小(轮换之前)。正整数加上单位(k,m或g)。

  • cache-max-file 默认值:“5”

    缓存文件的最大数量。如果轮换日志产生多余的文件,则删除最老的文件。

  • cache-compress 默认值:“true”

    启用或禁用轮换日志文件的压缩。布尔值作为字符串传递(true,1,0或false)。

使用第三方日志驱动

Docker 日志插件允许您扩展和定制 Docker 的日志功能,超出内置日志驱动程序的范围。

日志服务提供商可以实现自己的插件,并在 Docker Hub 或私有注册表上提供它们。

  • 安装日志驱动程序插件
    docker plugin install <org/image>
    
  • 列出所有安装的插件
    docker plugin ls 
    
  • 将插件配置为默认日志驱动程序
    修改daemon.json
    {
      "log-driver": "myplugin",
      "log-opts": {
    
      }
    }
    
  • 将容器配置使用自定义日志驱动
    docker run -it --log-driver myplugin alpine ash
    

自定义日志tag

tag可使用的参数

  • {{.ID}}

    容器ID的前12个字符。

  • {{.FullID}}

    完整的容器ID。

  • {{.Name}}

    容器名称。

  • {{.ImageID}}

    容器镜像ID的前12个字符。

  • {{.ImageFullID}}

    容器镜像的完整ID。

  • {{.ImageName}}

    容器镜像名。

  • {{.DaemonName}}

    Docker程序的名称(docker)。

示例

指定–log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}"值会产生类似syslog日志行的输出:

Aug 7 18:33:19 HOSTNAME hello-world/foobar/5790672ab6a0[9103]: Hello from Docker.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值