Docker 17
引擎: 管理员指南 | Engine: Admin Guide

Google Cloud日志记录驱动程序(引擎) | Google Cloud logging driver (Engine)

Google Cloud Logging 驱动程序

Google Cloud Logging 驱动程序将容器日志发送到 Google Cloud Logging Logging。

用法

要将gcplogs驱动程序用作默认日志记录驱动程序,请将该键log-driverlog-opt键设置daemon.json为位于/etc/docker/在Linux主机上或C:\ProgramData\docker\config\daemon.json在Windows Server 上的文件中的适当值。有关 Docker 配置使用daemon.json 的更多信息,请参阅 daemon.json

以下示例将日志驱动程序设置为gcplogs并设置该gcp-meta-name选项。

{ "log-driver": "gcplogs", "log-opts": { "gcp-meta-name": "example-instance-12345" } }

重新启动 Docker 以使更改生效。

您可以使用以下--log-driver选项来设置docker run特定容器的日志记录驱动程序:

docker run --log-driver=gcplogs ...

该日志驱动程序没有实现与其docker logs不兼容的阅读器。

如果 Docker 检测到它在 Google Cloud Project 中运行,它将从实例元数据服务中发现配置。否则,用户必须使用--gcp-project日志选项指定要登录的项目,并且 Docker 将尝试从Google应用程序默认凭证中获取凭据。该--gcp-project标志优先于从元数据服务器发现的信息,因此可以覆盖在 Google 云项目中运行的Docker守护程序以使用--gcp-project登录到其他 Google 云项目。

Docker 从 Google 云元数据服务器获取区域,实例名称和实例 ID 的值。如果元数据服务器不可用,那么可以通过选项提供这些值。它们不会覆盖元数据服务器的值。

gcplogs 选项

您可以使用该--log-opt NAME=VALUE标志来指定这些额外的 Google Cloud Logging 驱动程序选项:

选项需要描述
gcp-project可选的哪个GCP项目要登录。默认从GCE元数据服务中发现此值。
gcp-log-cmd可选的是否记录容器启动的命令。默认为false。
labels可选的如果为容器指定了这些标签,则应在消息中包含标签的逗号分隔列表。
env可选的如果为容器指定了这些变量,则应该在消息中包含环境变量的键的逗号分隔列表。
env-regex可选的与env类似且兼容。一个正则表达式来匹配与日志相关的环境变量。用于高级日志标记选项。
gcp-meta-zone可选的实例的区域名称。
gcp-meta-name可选的实例名称。
gcp-meta-id可选的实例ID。

如果labelenv键之间存在冲突,则env优先。这两个选项都将附加字段添加到日志消息的属性中。

以下是登录到通过查询 GCE 元数据服务器发现的默认日志记录目标所需的日志记录选项示例。

docker run --log-driver=gcplogs \ --log-opt labels=location \ --log-opt env=TEST \ --log-opt gcp-log-cmd=true \ --env "TEST=false" \ --label location=west \ your/application

此配置还指示驱动程序在有效负载中包含标签location,环境变量ENV和用于启动容器的命令。

在 GCE 之外运行的日志记录选项示例(守护程序必须配置为 GOOGLE_APPLICATION_CREDENTIALS):

docker run --log-driver=gcplogs \ --log-opt gcp-project=test-project --log-opt gcp-meta-zone=west1 \ --log-opt gcp-meta-name=`hostname` \ your/application

gcplogs, google, docker, logging, driver