gpt4 book ai didi

java - 如何从docker容器中的InetAddress.getLocalHost().getHostName()返回 "localhost"

转载 作者:行者123 更新时间:2023-11-30 06:00:36 26 4
gpt4 key购买 nike

在我的 docker 容器(Java 应用程序)中,调用 InetAddress.getLocalHost().getHostName()返回我们在 docker run --name 'myserver' 中给出的相同名称。

有没有办法让InetAddress.getLocalHost().getHostName()在docker容器内的Java代码中返回“localhost”?

docker 容器中的/etc/hosts 如下所示:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
<snip>
172.17.0.5 myserver

最佳答案

让我们使用此示例代码来验证相同的...

import java.net.InetAddress;
import java.net.UnknownHostException;
public class Util {
public static String getHostName() {
String hostName = "";
try {
InetAddress inetAddress = InetAddress.getLocalHost();
hostName = inetAddress.getHostName();
} catch (UnknownHostException e) {

}
return hostName;
}

public static void main(String[] args) {
System.out.println(getHostName());
}

}

假设您正在名为 BOX1 的 Box 中运行 Docker 容器

docker 容器 ID = 164f1347533a...

这将打印 164f1347533a 作为主机名。

要获取 BOX1,您必须在启动命令中传递 --hostname=BOX1。

关于java - 如何从docker容器中的InetAddress.getLocalHost().getHostName()返回 "localhost",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52339884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com