【问题标题】:docker container: can't access dotnet web api container from another containerdocker 容器:无法从另一个容器访问 dotnet web api 容器
【发布时间】: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


    【解决方案1】:

    试试“http://host.docker.internal:5000/api/

    Localhost 将是容器的环回,但您想要主机 PC 的端口 5000

    【讨论】:

      【解决方案2】:

      最好的建议是使用 docker-compose,因为您正在使用两个独立的服务。 https://docs.docker.com/compose/gettingstarted/

      在您的 Angular 容器中,您可以使用服务名称而不是 IP 地址或 localhost。

      供您参考示例 https://github.com/DanWahlin/Angular-Docker-Microservices/blob/master/docker-compose.yml

      【讨论】:

      • 谢谢,我确实像示例中那样使用了 docker-compose,但是没有用!
      • 你能分享你的 docker-compose 文件吗
      猜你喜欢
      • 2017-07-12
      • 2019-06-13
      • 2021-12-23
      • 2021-03-04
      • 2021-12-08
      • 2019-04-28
      • 1970-01-01
      • 2023-02-24
      • 1970-01-01
      相关资源
      最近更新 更多