如果我在Docker容器中运行java应用程序并且我想从同一个java应用程序代码中获取正在运行的docker容器的名称(我的java应用程序正在其中运行),那么获取容器的方法是什么通过java代码命名?
请注意,我希望将java代码放在容器内运行的同一个java应用程序中。
答案 0 :(得分:4)
您可以确保拥有docker.sock
mounted, and call docker inspect from there(因为您可以call docker command with Java)
但这似乎过于复杂(并且在启动容器时依赖hostname
而不是覆盖:it does not work in edge cases)
更简单的解决方案是在运行所述容器时将容器名称作为环境变量传递:
docker run -e name=<containerName> --tag <containerName> ...
这样,您可以从启动容器时自己设置的Java query an environment variable开始。