首页 > 解决方案 > 无法访问 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 中缺少一些东西(即使图像构建成功),所以为了消除这种情况,我想从这里尝试几个预先创建的图像:

https://www.hanselman.com/blog/GettingStartedWithNETCoreAndDockerAndTheMicrosoftContainerRegistry.aspx

同样,控制台应用程序运行良好,但再次找不到网站(我将-p参数更改为 8000:8080 以匹配我设置的内容)。

我有点不知所措,无法理解这里的问题。

标签: dockerasp.net-corevirtualbox

解决方案


最后,通过添加解决了这个问题

.UseUrls("http://*:8080")

Program.CreateWebHostBuilder方法中,然后添加

ENV ASPNETCORE_URLS=http://+:8080 EXPOSE 8080

到 Dockerfile,详见此处:https ://stackoverflow.com/a/40836125/3170822


推荐阅读