如何在docker swarm模式下记录容器

sop*_*ope 12 docker docker-swarm

有没有办法记录使用docker service createdocker swarm模式创建的容器?

db8*_*b80 16

最后,该功能已在docker 17.03中实现.您可以使用以下命令获取在不同/多个节点上运行的服务的日志:

docker service logs -f {NAME_OF_THE_SERVICE}
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令获取服务的名称:

docker service ls
Run Code Online (Sandbox Code Playgroud)

请注意,这是一个实验性功能(非生产就绪),为了使用它,您必须启用实验模式:

更新: docker logs服务现在是docker> = 17.06的标准功能. https://docs.docker.com/engine/reference/commandline/service_logs/


Bri*_*son 5

该功能尚未实现.正如@ronkot所说,你必须弄清楚哪个节点正在运行你的服务实例并直接连接到它.

即使该功能将来可能会实现,我强烈建议您开始使用Docker日志记录驱动程序,以集中集群的所有日志.以下是更多信息:https://docs.docker.com/engine/admin/logging/overview/

例如,如果你想使用像Logstash + Kibana这样的东西,gelf驱动程序是完美的:-)