原文本文介绍的方法是通过环境变量把容器自己的名字传递进去,仅支持以下两种部署方式:docker service createdocker stack deploydocker service createdocker service create -e MY_NAME="{{.Task.Name}}" -d –name abc tomcat:8.5-alpine这样容器里的MY_NAME环境变量就是容器自己的名字,比如:abc.1.rik8xgc0b9i2r7odnm6vnhnqgdocker stack deploydocker-compose file:version: ‘3.7’services: webapp: image: tomcat:8.5-alpine environment: MY_NAME: “{{.Task.Name}}“同样地将容器名传到环境变量MY_NAME里。参考资料Docker logging best practice,在这个文章里提到了可以用{{.Task.Name}}做template expansion来设置变量。上述两种方式都用到了go template,Format command and log output 列举了几种template expansion的使用方式。Inject chosen container name in container,这个issue提出要能够在容器内获得自己的名字,但是此issue没有被解决,依然在讨论中。