Docker撰写 – 容器接收连接被拒绝

使用docker-compose,我试图在公共端口8080上运行我的API,在私有端口9324上运行sqs服务。API需要能够与sqs服务进行通信。 为了做到这一点,我build立了以下docker-compose.yml:

version: '2' services: api: image: api ports: - "8080:8080" sqs: image: pakohan/elasticmq 

我已经尝试了几次迭代,包括为api添加一个链接别名:

 links: - "sqs:localhost" 

并揭露港口为sqs:

 ports: - "9324:9324" 

但似乎都没有工作。 尝试与sqs服务进行通信时,API始终获取连接拒绝错误。

当sqs端口公开暴露时,docker外部运行的API能够正常通信(所以sqs服务已经正确初始化)。

有没有人有任何想法如何解决这个问题?

试图欺骗api容器连接到sqs告诉它,它实际上连接到localhost是不会工作的。 您需要使用一个不具有特殊含义的名称来使sqs可用于api ,如:

 links: - sqs:original-name 

甚至:

 links: - sqs 

这使得sqs可以通过api访问。

那么当然,你需要告诉api它应该连接到original-namesqs的端口9324而不是localhost的端口9324。 你怎么做取决于实际的api