无法访问在 Docker 容器中的 VirtualBox VM 上托管的 ASP.NET 核心网站

Unable to access ASP.NET Core website hosted on VirtualBox VM in Docker container

我有 Windows 10 Home,因此安装了 Docker Toolbox,因此 运行 我的容器在 VirtualBox VM 上。

Docker 文档中的这个示例完美运行:

https://docs.docker.com/get-started/part2/

我在 VM 上设置了端口转发,以便本地主机上的 8000 映射到来宾计算机上的 8080,使用

启动了容器

docker container run --rm --detach -p 8000:8080 <image name>

并且可以通过在主机上的浏览器中转到 192.168.99.100:8000 或在命令行中卷曲来访问该站点。没问题。

但是,每当我尝试以相同的方式将 ASP.NET 核心网站放入容器时,我无法访问它,我经常收到 404。

我假设我的 Docker 文件中缺少一些东西(即使图像构建成功),所以,为了消除这种情况,我想从这里尝试一些预先创建的图像:

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

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

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

最后,通过添加

解决了这个问题

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

Program.CreateWebHostBuilder方法,然后添加

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

到 Dockerfile,详见此处: