我有一个包含两个服务的docker-compose文件,一个服务称为运行HTTP服务器的模块,另一个服务称为仪表板,该仪表板运行使用服务器上API端点的前端接口。这就是docker-compose文件的样子:
CreateProcess
有时,仪表板应该向模块发送请求,因此我正在发送GET请求(在节点中)。我尝试了许多不同的URL,但似乎没有一个得到响应。我尝试过:
version: '3'
services:
module:
build: .
ports:
- "5000:5000"
volumes:
- "./logs:/logs"
web:
build: ./dashboard
ports:
- "3000:3000"
http://localhost: 5000
http://module:5000
这些似乎都不起作用。难道我做错了什么?请求应发送到哪个URL?例如,由于存在chrome安全问题,它们无法正常工作吗?
答案 0 :(得分:0)
我会建议一些事情,让我知道哪一个适合您。
1。在公开端口号5000(用于前端和后端)时,您应该能够简单地使用IP地址进行通信。
2。如果您决定不将端口号公开为安全隐患,则需要在docker-compose文件中将两个容器彼此链接,然后使用容器名称进行通信。
version: '3'
services:
module:
build: .
ports:
- "5000:5000"
links:
- module:web
volumes:
- "./logs:/logs"
web:
build: ./dashboard
links:
- web:module
ports:
- "3000:3000"
在您的Web docker容器中,您应该能够使用 http://module:5000
访问后端注意-模块仅在docker容器内部有效,如果要在外部访问,则使用主机IP地址。
让我知道您是否需要任何帮助?
答案 1 :(得分:-1)
您需要EXPOSE模块上的端口。这将告诉它从Docker内部进行侦听(端口来自外部,例如来自您的浏览器)
module:
build: .
expose:
- "5000"
...etc