从本地开发到dockerized微服务

时间:2016-03-05 17:46:26

标签: networking docker microservices service-discovery

我开始使用dockerized微服务。

其中一些正在运行(请参阅下面的代码段)。在我的本地测试设置中,每个服务都在localhost:somePort处可用。例如。前端会尝试连接到localhost:backend1的后端API。 现在在集装箱化的世界里,这已不再适用了。我是否应该运行完整的服务发现解决方案,例如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

1 个答案:

答案 0 :(得分:2)

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

  1. service1-backend需要在其Dockerfile
  2. 中指定端口公开
  3. service1-frontend需要在撰写文件中添加指向service1-backend的链接。
  4. 然后在前端,您只需使用service1-backend:port即可访问后端。