c# - 从内部网络中的另一台机器访问 Docker 容器

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

我正在尝试使用 docker 从树莓派运行 asp.net core 应用程序,我想我已经完成了主要部分。我在 github 上有一个存储库,它是一个简单的 asp.net core 项目。我在 docker 云上设置了一个帐户,每次推送到我的 github 存储库时都会构建该帐户。

我让 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 命令
  • 将 Expose 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 会得到相同的连接被拒绝的结果: 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

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

最佳答案

Cutting it back to docker inspect -f "{{ .NetworkSettings.IPAddress }}" myapp gives me a different ip address to my ips internal ip address, which I've tried on port 8080 and get the same result

尝试从树莓派内部使用此 IP 地址(而不是 8080) curl 端口 5000 和 80。另外,您确定公开了正确的端口吗?您有“暴露 80”,但端口 8080 映射到 5000,并且 docker ps 显示没有 80 的映射

关于c# - 从内部网络中的另一台机器访问 Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48612388/

相关文章:

linux - 在 unix 中恢复句子中单词的快速方法?

python - apk python软件包未安装在Alpine Docker Image中

python-3.x - 本地主机 : how to get credentials to connect GAE Python 3 app and Datastore Emulator?

c# 验证字符串是否包含匹配数量的括号

c# - 解析附加到 PDF 文件末尾的 XMP XML 元数据的正确方法?

c++ - 如何找到链接到错误版本 Qt 的部分代码?

docker - 如何找到Shiny-Server可执行文件并在Shiny-server.sh中引用它?

c# - 使用 XmlReader 类解析具有相同名称元素的 XML

c# - 正则表达式匹配所有除非?

linux - 32位 'dialog'工具静态编译如何满足依赖