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-name
或sqs
的端口9324而不是localhost
的端口9324。 你怎么做取决于实际的api
。