如何配置Docker容器日志中显示的主机名?

时间:2019-07-25 15:13:07

标签: docker logging systemd-journald

我通过journald记录了Docker容器的活动。容器提供的主机名是非描述性的。 Minecraft docker容器的示例:

Jul 25 16:51:38 srv c34ebd053ff5[19692]: [14:51:38 ERROR]: Could not pass event ArmorEquipEvent to Carmor v1.2.2

c34ebd053ff5几乎没有信息,我担心它会随着时间而改变(例如,如果是某种哈希,则带有新图像)。

有没有一种方法可以强制使用容器名称进行记录?

我尝试use tags /etc/docker/daemon.json,但没有帮助:

{
  "log-driver": "journald",
  "log-opts": {
    "tag": "{{.Name}}"
  }
}

编辑:容器由docker-compose管理,并且每个条目都有一个有意义的container_name(因此默认情况下不会在日志中使用

1 个答案:

答案 0 :(得分:0)

解决方案是向hostname中添加一个docker-compose.yml条目:

  mc-mi:
    image: itzg/minecraft-server
    container_name: mc-mi
    hostname: mc-mi

从那时起,日志被视为来自mc-mi而不是c34ebd053ff5

值得注意的是,container_name未被用作{{.Name}}

谢谢@ johnharris85的演示方法。