docker - 无法访问 Docker 容器中 VirtualBox VM 上托管的 ASP.NET Core 网站
问题描述
我有 Windows 10 Home,所以安装了 Docker Toolbox,因此在 VirtualBox VM 上运行我的容器。
Docker 文档中的这个示例运行良好:
https://docs.docker.com/get-started/part2/
我在 VM 上设置了端口转发,以便 localhost 上的 8000 映射到客户机上的 8080,使用启动容器
docker container run --rm --detach -p 8000:8080 <image name>
并且可以通过在主机上的浏览器中访问 192.168.99.100:8000 或在命令行中 curl 来访问该站点。没有任何问题。
但是,每当我尝试以相同的方式将 ASP.NET Core 网站放入容器中时,我无法访问它,我不断收到 404。
我假设我的 Dockerfile 中缺少一些东西(即使图像构建成功),所以为了消除这种情况,我想从这里尝试几个预先创建的图像:
同样,控制台应用程序运行良好,但再次找不到网站(我将-p
参数更改为 8000:8080 以匹配我设置的内容)。
我有点不知所措,无法理解这里的问题。
解决方案
最后,通过添加解决了这个问题
.UseUrls("http://*:8080")
到Program.CreateWebHostBuilder
方法中,然后添加
ENV ASPNETCORE_URLS=http://+:8080
EXPOSE 8080
到 Dockerfile,详见此处:https ://stackoverflow.com/a/40836125/3170822
推荐阅读
- list - 如何读取坐标 csv 文件并分解为 E、N、Z 和 Station?
- powershell - 由于无法从 URI 下载,Powershell 无法安装 PowerShellGet
- sql - 如何使用当天计算 NRF 4-5-4 日历中的 MTD
- html - 不能在 div 中垂直居中 h3 元素
- javascript - 根据其他值在javascript中获取值一个数组
- javascript - 在 MongoDB 中获取聚合数据
- azure - Microsoft Azure OAuth 2.0 - 您可以存储授权令牌以供重复使用吗?
- c# - 为什么 "new CultureInfo("xx")" 在一个环境中抛出异常,而在另一个环境中却没有?
- javascript - 滑块范围的方程
- express - 使用 express.static('public') 时难以理解中间件的流程