angular - 我的 Angular 应用程序的容器无法与 Docker 上的 API 容器通信
问题描述
我是 Docker 的新手,我正在尝试在 Docker 容器上运行 Angular 应用程序,该应用程序向另一个 Docker 容器上运行的 API 发出服务请求
它们都在同一个网络上运行,如您所见,我可以从一个容器 ping 到另一个容器。
当我在本地端口 3000 上公开服务时,我可以看到服务正在运行
但是当我的 Angular 应用程序调用该服务时,请求超时并给我这个错误:
我的 Angular 应用程序上的 Dockerfile 如下所示:
FROM node:8
WORKDIR /usr/src/app
COPY package.json /usr/src/app/package.json
RUN npm install
RUN npm install -g @angular/cli@6.1.5
COPY . /usr/src/app
CMD ng serve
我用来运行我的 API 的命令是
docker run --name hello-service --ip 172.69.69.1 -p 3000:8000 --network mtsds_test hello-service
我用于我的应用程序的那个是
docker run -it -v /usr/src/app -v /usr/src/app/node_modules -p 4200:4200 --rm --network mtsds_test angular_mtsds
我在我的 Angular 应用程序上运行此服务
public sayHello(){
return this._http.get('http://172.69.69.1:8080');
}
解决方案
关于您的 docker-run 命令,我不知道 8080 端口的来源:
docker run --name hello-service --ip 172.69.69.1 -p 3000:8000 --network mtsds_test hello-service
然后,您应该使用公开的端口 8000 或发布的端口 3000,但不要使用 8080。
推荐阅读
- java - XmlDecoder 和 Akka Stream 的问题仅在 Docker 容器内
- wordpress - 如何防止我的 wordpress 多站点重定向到包含斜杠的主页?
- postgresql - 覆盖 Postgres Docker 容器中的单个配置
- node.js - 内部/模块/cjs/loader.js:584 错误
- android - Android前台服务在一段时间后终止
- c++ - 试图在 C++ 中调用 fortran 子例程
- ajax - docker-compose up后如何获取API在服务器本地测试?
- android - 房间数据库的独特价值
- c++ - 未直接继承的基模板类成员的可见性
- javascript - XMLHttpRequest 已被 CORS 策略阻止 - https://openid-connect-eu.onelogin.com/oidc/token