"logs"命令仅支持"json-file"和"journald"日志记录驱动程序(获取:gcplogs)



>我使用 docker 镜像创建了 google 云计算实例

gcloud beta compute instances create-with-container serverName 
--container-image gcr.io/myProject/myContainer

决定 ssh 到这个容器: 首先,我使用 ssh 登录到此计算实例

gcloud compute --project myProject ssh serverName

然后在计算实例中运行:

docker exec -it e3e840a8347c  /bin/bash

我得到

Error response from daemon: Container e3e840a8347c is restarting, wait until the container is running

好吧,我需要查看日志来调试重新启动的原因:

docker logs e3e840a8347c

我得到:

"logs" command is supported only for "json-file" and "journald" logging drivers (got: gcplogs)

如何查看日志? 也许还有其他建议如何调试容器重新启动。

gcloud beta logging read projects/my-project-name/logs/gcplogs-docker-driver | grep data

向我展示了 dockergcplogs所需的日志

这是我如何选择projects/my-project-name/logs/gcplogs-docker-driver名字的:

gcloud logging logs list

它显示所有可能的日志名称的列表。

根据有关docker logs的文档,如果未在docker run命令中指定日志记录驱动程序,则 docker 将自动求助于 json 文件或按照最后一个错误指定的日志进行日志处理。

不用担心,因为 docker 文档还包含有关如何让 gcplog 与您的容器一起使用的信息。如果要使 gcplogs 成为所有容器的默认日志记录服务,请找到 docker 的daemon.json文件,并将log-driverlog-opt密钥设置为所需的任何内容,然后重新启动 docker。如果不想更改默认日志记录服务,请确保将docker run命令设置为包含标志--log-driver=gcplogs

至于调试部分,如果您的容器正在重新启动,那么您要么传递了-r--restart标志(不太可能(,要么与您尝试容器化的服务相结合,但无法正常工作。最好的建议实际上是获取容器上的docker logs,看看出了什么问题,然后尝试搜索互联网来修复它。如果需要查看容器配置,也可以使用docker inspect containerID/Name

如果 Docker 配置为使用不支持读取的日志驱动程序,则需要通过配置的日志记录系统访问日志。

例如,如果将 Docker 配置为记录到系统日志,则可以从系统日志写入条目的任何位置查看日志。

对于gcplogs驱动程序,当您通过网络浏览器登录 Google Cloud 时,您可以通过 Google Cloud Platform 控制台日志查看器界面访问日志。

最新更新