©
本文档使用
php.cn手册 发布
Google Cloud Logging 驱动程序将容器日志发送到 Google Cloud Logging Logging。
要将gcplogs
驱动程序用作默认日志记录驱动程序,请将该键log-driver
和log-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 的值。如果元数据服务器不可用,那么可以通过选项提供这些值。它们不会覆盖元数据服务器的值。
您可以使用该--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。 |
如果label
和env
键之间存在冲突,则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