gpt4 book ai didi

docker - 使用主机名而不是 localhost 访问 docker 容器

转载 作者:行者123 更新时间:2023-12-02 18:05:58 32 4
gpt4 key购买 nike

我正在使用 docker-compose 和 docker。一切都很好。但从主机访问服务的唯一方法是通过 http://localhost:port .我希望能够使用容器名称进行访问,例如:http://elastic:9020 .

它在 docker 内部运行良好。如果一个容器需要访问另一个容器,我可以使用 http://elastic:9020但不是来自主机。当然,我正在公开端口并使用端口映射,并且正如我所说的那样使用 localhost 工作。 docker

更新:我正在寻找不需要安装 DNS 服务器或更新 .host 文件的 native 解决方案。

最佳答案

有一个 OSS 项目旨在解析 Docker 的主机名:

mageddo/dns-proxy-server :从你的 docker 容器解决你的 DNS 主机,然后从你的本地配置,然后从互联网

主要特点:

  • Solve hostnames from local configuration database
  • Solve hostnames from docker containers using docker hostname option or HOSTNAMES env
  • Solve hostnames from a list of configured DNS servers(as a proxy) if no answer of two above
  • Solve hostnames using wildcards
  • Graphic interface to Create/List/Update/Delete A/CNAME records
  • Solve host machine IP using host.docker hostname
  • Access container by it’s container name / service name
  • Specify from which network solve container IP


如何使用:
docker run --rm --hostname dns.mageddo \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/resolv.conf:/etc/resolv.conf \
defreitas/dns-proxy-server

关于docker - 使用主机名而不是 localhost 访问 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57810423/

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