“logs”命令仅支持“json-file”和“journald”日志记录驱动程序(got:gcplogs)

问题描述 投票:2回答:3

我使用docker image创建了谷歌云计算实例

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)

怎么看日志?也许其他人建议如何调试容器重启。

docker gcloud
3个回答
3
投票
gcloud beta logging read projects/my-project-name/logs/gcplogs-docker-driver | grep data

向我展示了docker's gcplogs所需的日志

在这里我如何拿起projects/my-project-name/logs/gcplogs-docker-driver名称:

gcloud logging logs list

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


1
投票

According to the documentation regarding docker logs,如果未在docker run命令中指定日志记录驱动程序,则docker将自动求助于最后一个错误指定的json文件或journald。

不用担心,因为docker文档也包含information on exactly how to get gcplogs to work with your container。如果你想让gcplogs成为所有容器的默认日志记录服务,找到你的docker的daemon.json文件,并将log-driverlog-opt密钥设置为你需要的任何东西并重新启动docker。如果您不想更改默认日志记录服务,请确保将docker run命令设置为包含标志--log-driver=gcplogs

至于调试部分,如果你的容器正在重新启动,那么你要么传递了-r--restart标志(不太可能),要么就是那个与你正试图集装箱化的服务无法正常工作。最好的建议是将docker logs放在容器上,看看出了什么问题,然后尝试搜索互联网来修复它。如果需要查看容器配置,还可以使用docker inspect containerID/Name


1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.