我正在使用docker-compose和docker。一切正常。但是从主机访问服务的唯一方法是通过http://localhost:port。我希望能够使用http://elastic:9020这样的容器名称进行访问。
在docker内部运行良好。如果一个容器需要访问另一个容器,我可以使用http://elastic:9020,但不能从主机使用。当然,我公开了端口并使用端口映射,并且正如我所说的那样,它使用本地主机工作。 Docker
更新:我一直在寻找无需安装DNS服务器或更新.host文件的本机解决方案。
答案 0 :(得分:1)
有一个OSS项目旨在解决Docker的主机名:
mageddo/dns-proxy-server:从Docker容器,然后从本地配置,然后从互联网解决DNS主机
主要功能:
- 解决本地配置数据库中的主机名
- 使用docker hostname 选项或 HOSTNAMES env
从Docker容器中解决主机名- 如果没有以上两个答案,请从已配置的DNS服务器列表中解决主机名(作为代理)
- 使用通配符解决主机名
- 用于创建/列出/更新/删除 A / CNAME 记录的图形界面
- 使用
host.docker
主机名解决主机IP- 通过容器名称/服务名称访问容器
- 指定从哪个网络解决容器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