我有一个docker-compose.yml,在我的本地机器上执行了几个spring cloud微服务。但我希望在本地machain上执行微服务,而不是在docker中执行。这个微服务可以访问de external docker ip但无法访问“eureka”注册的内部ips。 我尝试(不成功)部署OpenVPN docker。 ¿在docker网络开发过程中只使用一个微服务的更好的解决方案是什么?
答案 0 :(得分:0)
不幸的是,docker-compose是一个只能与docker一起使用的工具。如果您只需要运行和管理微服务应用程序,您可以搜索其他一些解决方案,如主管等。
但是如果我正确地理解了你的情况,那么你就拥有本地机器(IP为例如192.168.100.1)和docker中运行的微服务(它具有自己的docker网络IP,如172.17.0.2)。在本地计算机上,您还运行另一个侦听示例端口1234的服务。并且您需要从具有内部IP 172.17.0.2的docker容器中侦听192.168.100.1:1234的访问服务。 在这种情况下,您只需要在docker中启动微服务并使用端口公开(https://docs.docker.com/compose/compose-file/#ports)。在这种情况下,您可以运行docker容器,例如将端口1234暴露给主机上的同一端口1234以及所有端口。 192.168.100.1:1234和172.17.0.2:1234之间的所有流量都将透明传递,因此从运行容器内部可以使用docker的目标IP(通常它的172.17.0.1,您可以通过运行ifconfig来检查实际值)在本地计算机上并检查网络接口docker0)和端口1234
docker0 Link encap:Ethernet HWaddr 02:42:B1:B5:7B:53
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0