我有一个spring boot服务,可以像spring boot app一样正常运行。我已经使用docker文件从中创建了docker映像。当映像启动时,应用程序似乎可以正常启动,直到尝试解析外部主机为止(我已经基于配置文件配置了一些外部服务,并且我正在开发配置文件中运行,它将与外部服务(如consule,mysql等)进行通信。它引发未知主机异常。相同的应用程序可以很好地运行,并且可以在本地计算机中作为Spring Boot应用程序/服务运行时与外部服务运行并与之通信。看来问题出在主机和docker容器之间,无法使用主机的dns。任何帮助,我该如何解决该问题?
答案 0 :(得分:0)
来自Docker文档:
https://docs.docker.com/config/containers/container-networking/#ip-address-and-hostname
DNS服务
默认情况下,容器会继承Docker的DNS设置 守护程序,包括/ etc / hosts和/etc/resolv.conf。您可以覆盖 这些设置是基于每个容器的。
Flag Description --dns The IP address of a DNS server. To specify multiple DNS servers, use multiple --dns flags. If the container cannot reach any of the IP addresses you specify, Google’s public DNS server 8.8.8.8 is added, so that your container can resolve internet domains. --dns-search A DNS search domain to search non-fully-qualified hostnames. To specify multiple DNS search prefixes, use multiple --dns-search flags. --dns-opt A key-value pair representing a DNS option and its value. See your operating system’s documentation for resolv.conf for valid options. --hostname The hostname a container uses for itself. Defaults to the container’s ID if not specified.
另请参阅: