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

时间:2018-06-07 18:15:44

标签: docker gcloud

我使用docker image

创建了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)

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

3 个答案:

答案 0 :(得分:3)

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

向我展示了来自docker' gcplogs

的所需日志

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

gcloud logging logs list

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

答案 1 :(得分: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

答案 2 :(得分:1)

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

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

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