当前位置: 首页 > 知识库问答 >
问题:

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

吕晟睿
2023-03-14

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

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

共有1个答案

柳胡媚
2023-03-14

你可以确保你有码头工人。sock挂载,并从那里调用docker inspect(因为可以用Java调用docker命令)

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

一个更简单的解决方案是在运行所述容器时将容器名称作为环境变量传递:

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

这样,您就可以从Java查询启动容器时自己设置的环境变量。

 类似资料:
  • 这个命令给出了运行容器ID的列表: 是否有获取容器名称列表的命令?

  • 问题内容: 从容器名称获取docker容器ID的命令是什么? 问题答案: 在Linux中: 或在OS X,Windows中: 您的容器名称在哪里。 如@llia Sidorenko所述,为避免产生误报,您可以使用正则表达式锚点,如下所示: 说明: 为了安静。仅输出ID 对所有人。即使您的容器未运行也能正常工作 用于过滤器。 容器名称必须以该字符串 开头 容器名称必须 结束 这个字符串

  • 从容器名称中获取Docker容器id的命令是什么?

  • 如何使用PHP在容器本身中获取Docker容器ID? 我刚刚发现linux命令如下:

  • 问题内容: 我的容器中包含所有网站代码。 我的Dockerfile使用git下载代码,并将其作为映像的一部分,以便更轻松地部署到生产环境。 但是,如何在开发中编辑代码?我认为使用卷是解决方案,例如:。但是它将覆盖容器中的目录。如果是我第一次运行它,它将清空它,因为主机中没有任何东西。因此,我在Dockerfile中所做的一切都丢失了。 我还希望在应用程序的不同版本之间共享目录和文件,例如:。这是专

  • 问题内容: 我想了解它们的配置,就像通过元数据获取有关EC2实例的信息一样。 我可以使用(假设正在侦听port ) 来获取它的一些数据,但是想知道是否有更好的方法,至少获取容器的完整ID,因为实际上缩短到了12个字符,而docker似乎对其执行了“最佳匹配”。 另外,如何获取docker主机的外部IP(除了访问EC2元数据(特定于AWS)之外) 问题答案: 我发现可以在/ proc / self