首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用docker-java获取容器的主机名?

如何使用docker-java获取容器的主机名?
EN

Stack Overflow用户
提问于 2020-10-23 21:13:54
回答 1查看 262关注 0票数 0

我可以像这样创建、启动和检索docker容器的实例:

代码语言:javascript
复制
CreateContainerResponse response = dockerClient.createContainerCmd(imageId).exec();
String containerId = response.getId();
dockerClient.startContainerCmd(containerId).exec()

Container container = dockerClient.listContainersCmd()
    .withIdFilter(Collections.singletonList(containerId))
    .exec()
    .get(0);

但是,Container对象似乎不会公开主机名。

我还可以像这样检查正在运行的容器:

代码语言:javascript
复制
InspectContainerResponse response = dockerClient.inspectContainerCmd(container.getId()).exec()

同样,响应不包含主机名。它确实包含一个hostnamePath,它引用了存储主机名的文件,但这需要根用户权限才能读取,而我的应用程序没有根权限。

我可以将容器id子串,但这似乎很脆弱。如果没有必要的话,我也想避免向外部docker进程发起攻击。

有没有什么方法可以直接从docker-java中检索主机名?

EN

回答 1

Stack Overflow用户

发布于 2020-11-20 08:19:07

代码语言:javascript
复制
dockerClient.inspectContainerCmd(container.getId()).exec().getConfig().getHostName();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64500735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档