在Docker Swarm模式下,有没有一种方法可以记录使用docker service create
命令创建的容器?
在Docker Swarm模式下,有没有一种方法可以记录使用docker service create
命令创建的容器?
终于在docker 17.03中实现了该功能。您可以通过以下命令获取在不同/多个节点上运行的服务的日志:
最后,在Docker 17.03中实现了这个功能。你可以使用这个命令获取运行在不同/多个节点上的服务的日志:
docker service logs -f {NAME_OF_THE_SERVICE}
你可以通过以下方式获取服务的名称:
docker service ls
请注意,这是一个实验性功能(不适用于生产环境),为了使用它,您必须启用实验模式:
更新:docker logs service现在是docker >= 17.06的标准功能。 https://docs.docker.com/engine/reference/commandline/service_logs/
该功能尚未实现。正如@ronkot所说,您需要确定哪个节点正在运行您的服务实例,然后直接连接到该节点。
即使该功能将来可能会被实现,我强烈建议您开始使用Docker日志驱动程序,以便集中所有集群日志。以下是更多信息:https://docs.docker.com/engine/admin/logging/overview/
例如,如果您想使用类似Logstash + Kibana的东西,则gelf驱动程序是完美的 :-)
docker-compose logs
的日志聚合功能,那么在 Docker Swarm 模式下它还没有被实现。如果你需要日志,你所能做的(据我所知)就是找出哪个节点托管了你的容器,并直接使用docker logs <container id>
命令。 - ronkot