如何在java代码中获取docker容器名称

如果我在一个Docker容器中运行一个java应用程序,并且想从同一个java应用程序代码中获取正在运行的docker容器的名称(在其中运行我的java应用程序),那么通过java获取容器名称的方法是什么码?

请注意,我想要在容器中运行的相同的Java应用程序中有Java代码。

你可以确定你已经安装了docker.sock ,并且从那里调用docker.sock检查 (因为你可以用Java调用docker命令 )

但是这似乎过于复杂(并且依赖hostname在启动容器时未被覆盖: 它在边缘情况下不起作用 )

更简单的解决scheme是在运行容器时将容器名称作为环境variables传递:

 docker run -e name=<containerName> --tag <containerName> ... 

这样,您可以从Java查询您在启动容器时设置的环境variables 。