如果我在Docker容器内运行Java应用程序,并且想要从相同的Java应用程序代码中获取正在运行的Docker容器的名称(其中我的Java应用程序正在运行),那么有什么方法可以通过Java代码获取容器名称?
请注意,我希望将Java代码放在同一Java应用程序中,该应用程序正在容器内运行。
如果我在Docker容器内运行Java应用程序,并且想要从相同的Java应用程序代码中获取正在运行的Docker容器的名称(其中我的Java应用程序正在运行),那么有什么方法可以通过Java代码获取容器名称?
请注意,我希望将Java代码放在同一Java应用程序中,该应用程序正在容器内运行。
您可以确保已经挂载docker.sock
,并从那里调用Java中的docker命令进行docker检查。
但这似乎过于复杂(并依赖于在启动容器时未覆盖hostname
:在一些特殊情况下它无法正常工作)。
一个更简单的解决方案是在运行该容器时将容器名称作为环境变量传递:
docker run -e name=<containerName> --tag <containerName> ...