【发布时间】:2021-05-23 02:24:31
【问题描述】:
我有一个 nodeJS 应用程序在其中一个 docker 容器中运行,比如说 socketserver,我有一个 react 应用程序在另一个容器中运行 reactjs
我在同一网络上连接两者driver。
当我使用 docker run 创建期间提供的端口映射从 chrome 浏览器运行 reactjs 应用程序时,它显示以下错误:
这里是 docker compose 文件:
version: "3"
services:
dashboard-server:
container_name: socketserver
image: qr-socket-server
networks:
- backend
sample:
container_name: sample
build:
context: .
dockerfile: Dockerfile
volumes:
- '.:/app'
- '/app/node_modules'
networks:
- frontend
- backend
networks:
frontend:
# Use a custom driver
driver: bridge
backend:
# Use a custom driver which takes special options
driver: bridge
PS:我尝试创建一个 alpine 映像并使用 http://socketserver:30100 从那里 ping nodejs 容器,它返回了正确的响应...
【问题讨论】:
-
是浏览器窗口的截图吗?浏览器未在 Docker 中运行,无法将容器名称解析为主机名。
-
正确。它来自浏览器窗口...我如何从 docker 内部运行?
-
你不能。您需要从前端容器发布
ports:,并使用主机的DNS 名称(或localhost,如果浏览器和容器在同一系统上运行)连接到该发布的端口。 -
哦,好吧...我尝试了同样的...仍然是同样的问题。
标签: node.js reactjs docker docker-networking docker-network