我开始使用dockerized微服务。
其中一些正在运行(请参阅下面的代码段)。在我的本地测试设置中,每个服务都在localhost:somePort
处可用。例如。前端会尝试连接到localhost:backend1
的后端API。
现在在集装箱化的世界里,这已不再适用了。我是否应该运行完整的服务发现解决方案,例如consul
或etcd
?或者我应该尝试使用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
答案 0 :(得分:2)
如果service1-frontend
需要通过service1-backend
访问name:port
,则需要:
service1-backend
需要在其Dockerfile service1-frontend
需要在撰写文件中添加指向service1-backend
的链接。然后在前端,您只需使用service1-backend:port
即可访问后端。