我有一个基本的docker-compose设置,包括以下内容:
如果没有将8080以外的端口映射到docker主机,我无法解决这些主机条目。
在我的主机的/ etc / hosts中输入此条目: 192.168.50.1票价兔子配置书签入:只有当我明确地将服务的端口8080绑定到我的主机的端口8081,端口8082,端口8083 ...时才能访问服务。对于.yml文件中的每个服务。
是否有其他方法可以确保服务可以通过其dns名称发现,甚至可以从子网外部发现?
答案 0 :(得分:1)
您无法将所有4个容器绑定到主机上的同一端口。每个端口只有一个容器。但是有一些解决方法:
https://fares:8081
您的/ etc / hosts可能如下所示:
192.168.50.1 fares
192.168.50.2 rabbit
...
您可以在docker-compose.yml中将其他 Docker容器设置为reverse proxy。反向代理容器可以绑定到端口8080,并根据主机名将请求转发到正确的容器。您不需要绑定主机上其他容器的端口,因为您的反向代理正在转发请求。有一篇博客文章详细解释了它的工作原理:http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/