我可以像这样创建、启动和检索docker容器的实例:
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对象似乎不会公开主机名。
我还可以像这样检查正在运行的容器:
InspectContainerResponse response = dockerClient.inspectContainerCmd(container.getId()).exec()同样,响应不包含主机名。它确实包含一个hostnamePath,它引用了存储主机名的文件,但这需要根用户权限才能读取,而我的应用程序没有根权限。
我可以将容器id子串,但这似乎很脆弱。如果没有必要的话,我也想避免向外部docker进程发起攻击。
有没有什么方法可以直接从docker-java中检索主机名?
发布于 2020-11-20 08:19:07
dockerClient.inspectContainerCmd(container.getId()).exec().getConfig().getHostName();https://stackoverflow.com/questions/64500735
复制相似问题