【发布时间】:2019-08-29 19:07:31
【问题描述】:
我创建了在 docker 容器中运行的 dotnet core web API。
当我尝试从浏览器 (Chrom) 调用 API 时,我得到了结果,但是当我尝试从也在 docker 容器中运行的 Angular 应用程序调用 API 时,我收到了 connection_faild 错误。
Web API 的 docker 文件:
FROM microsoft/dotnet:2.2-sdk
COPY /pub/ /root/
WORKDIR /root/
ENV ASPNETCORE_URLS="http://*:5000"
EXPOSE 5000
ENTRYPOINT ["dotnet", "Backend-lite.dll"]
运行容器:
docker run -p 5000:5000 netcore-rest
Angular 应用的 docker 文件:
FROM node:8.11.2-alpine as node
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:1.13.12-alpine
COPY --from=node /usr/src/app/dist/myapp /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/conf.d/default.confs
运行 Angular 容器:
docker run -t -p 80:80 angular
我正在使用此连接字符串从 Angular 应用程序连接到 API
const BASE_URL = 'http://localhost:5000/api/';
我也尝试在两个容器之间创建一个网络,但没有成功。
docker network create --gateway 172.16.1.1 --subnet 172.16.1.0/24
app_subnet
然后我运行了 api 容器:
docker run --name server --ip 172.16.1.2 -p 5000:5000 --network
app_subnet dotnet
角度容器:
docker run --name app --ip 172.16.1.3 -p 4200:80 --network app_subnet
angular
我更改了 Angular 应用程序中的连接字符串以匹配容器的 IP
const BASE_URL = 'http://172.16.1.2:5000/api/';
我是 docker 新手,谁能帮我找出问题所在。
【问题讨论】:
标签: docker dockerfile docker-machine