我通过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
几乎没有信息,我担心它会随着时间的推移而改变(例如,如果它是某种哈希值,则使用新图像)。
有没有办法强制使用容器的名称以进行日志记录?
我尝试使用标签/etc/docker/daemon.json
但没有帮助:
{
"log-driver": "journald",
"log-opts": {
"tag": "{{.Name}}"
}
}
编辑:容器由docker-compose
管理,每个条目都有一个有意义的container_name
(因此默认情况下不会在日志中使用)
解决方案是在docker-compose.yml
中添加一个hostname
条目:
mc-mi:
image: itzg/minecraft-server
container_name: mc-mi
hostname: mc-mi
从那时起,日志被视为来自mc-mi
而不是c34ebd053ff5
。
值得注意的是,container_name
不用作{{.Name}}
。
感谢@johnharris85带路。