从本地开发到docker化的微服务

我正在开始使用dockerized微服务。

其中几个正在运行(请参阅下面的代码段)。 在我的本地testing设置中,每个服务在localhost:somePort都可用。 例如,前端将尝试连接到localhost:backend1的后端API。 现在在集装箱化的世界里,这已经不起作用了。 我应该运行一个完整的服务发现解决scheme,如consuletcd ? 还是应该尝试使用docker的命名服务从前端访问后端? https://docs.docker.com/compose/networking/

 version: '2' services: service1-backend: image: service1:0.0.1 links: - service1-frontend service1-frontend: image: service1-frontend:0.0.1 links: - service2-frontend ports: - "8080:80" service2-backend: image: service2-backend:0.0.1 links: - service1-backend - service2-frontend - service3 service2-frontend: image: service2-frontend:0.0.1 ports: - "8081:80" service3: image: service3:0.0.1 

如果service1-frontend需要通过name:port访问service1-backend ,则需要:

  1. service1-backend需要在其Dockerfile中指定一个端口公开
  2. service1-frontend需要在撰写文件中有一个到service1-backend的链接。

然后在前端,你可以访问后端,只需使用service1-backend:port