2017-05-30 2308 views
1

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

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

回答

3

你可以确保你有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开始容器时自己设置的自己。

+0

感谢您的回答。但是如果我不想在运行docker run时传递容器名称会怎么样。有没有简单的方法从java代码中找到容器名称? –

+0

@RajibBiswas否:通过这个名字是最简单的wxay:为什么你不能在docker run上这样设置它? – VonC

+0

因为我们作为一种产品,向我们的客户提供基础图像,然后他们在我们的基础图像上创建自己的应用程序图像并运行容器。所以,我们不是谁来做码头运行,我们的客户会这样做。所以我不能强迫我的客户做 - 在做码头运行时的名字。我希望你现在明白我的问题。 –

相关问题