从内部网络中的另一台计算机访问Docker容器

时间:2018-02-04 19:56:20

标签: c# linux docker networking asp.net-core

我试图使用docker从raspberry pi运行asp.net核心应用程序,我想我已经把主要部分打倒了。我在github上有一个存储库,它是一个简单的asp.net核心项目。我已经在docker cloud上设置了一个帐户,每次我推送到我的github repo时都会构建。

我让docker将我的存储库拉到我的pi上: screenshot of docker image being on pi

我运行命令: docker run -d -p 8080:80 joro550/radiusnet --network=host 我可以看到它正在运行: image of docker image running

但是当我在端口8080上访问我的pi的ip地址时,我得到了这个: Connection refused screen shot

当我一直在寻找这个时,人们已经建议添加这些标志(我已尝试并提出相同的结果:

  • 将--network = host添加到docker run命令
  • 将-it添加到docker run命令
  • 将Dock 80添加到docker文件中

我认为在这一点上,我对如何访问这件事感到有点失落。 docker文档建议运行

`docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" myapp`

如果我使用的是Windows 10 Nano容器,我不相信我会使用它,但是当我运行此命令时,我得到一个响亮的<no value>

将其切换回docker inspect -f "{{ .NetworkSettings.IPAddress }}" myapp会给我一个与我的ips内部IP地址不同的IP地址,我已尝试在端口8080上获得相同的结果

对两个地址进行卷曲会给出与拒绝连接相同的结果: curl failing on ip address

这是我感兴趣的人的docker文件:

FROM microsoft/aspnetcore-build:2.0 AS build-env
WORKDIR /app

# copy csproj and restore as distinct layers
COPY /src ./
RUN dotnet restore

# copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out -r linux-arm

# build runtime image
FROM microsoft/dotnet:2.0.0-runtime-stretch-arm32v7
WORKDIR /app
COPY --from=build-env /app/src/RadiusNet.Web/out .
EXPOSE 80
ENTRYPOINT ["dotnet", "RadiusNet.Web.dll"]

如果需要更多信息,请问,我对Docker很陌生,所以我只是对当前情况进行了一些知识转移。

链接到github项目(如果需要):https://github.com/joro550/RadiusNet

任何帮助 - 此时将不胜感激

1 个答案:

答案 0 :(得分:-1)

  

将其切换回docker inspect -f&#34; {{.NetworkSettings.IPAddress}}&#34; myapp给了我一个不同的ip地址到我的ips内部ip地址,我已尝试在端口8080上获得相同的结果

尝试从raspbery pi内部使用此IP地址卷曲端口5000和80而不是8080.此外,您确定要暴露正确的端口吗?你有&#34;暴露80&#34;但是端口8080映射到5000,而docker ps没有显示80

的映射