在docker中托管后无法访问.net核心api URL
我有一张VS2017。dotnetcore2.1 我的是安装了Windows 10和Docker for Windows。 Windows版本为10.0.16299.904 客户端和服务器的Docker版本均为community 18.09.0 我只是在启用Docker复选框的情况下创建了一个新文件->新建->项目->.Net核心->Asp.Net核心Web应用程序->Api 在没有做任何更改的情况下,我构建了它,并尝试在IIS Express和Docker中运行它,默认情况下,它将/api/values控制器响应显示为值 现在在ps提示符下,我可以看到图像,并创建了相应的容器 docker ps上的一个命令,它列出了端口为1598->80/tcp的正在运行的容器 我使用docker inspect列出json和ip,显示为172.22.74.213 我曾访问我的api,但出现以下错误: 使用docker inspect表示容器正在运行。在docker中托管后无法访问.net核心api URL,docker,asp.net-core,windows-10,Docker,Asp.net Core,Windows 10,我有一张VS2017。dotnetcore2.1 我的是安装了Windows 10和Docker for Windows。 Windows版本为10.0.16299.904 客户端和服务器的Docker版本均为community 18.09.0 我只是在启用Docker复选框的情况下创建了一个新文件->新建->项目->.Net核心->Asp.Net核心Web应用程序->Api 在没有做任何更改的情况下,我构建了它,并尝试在IIS Express和Docker中运行它,默认情况下,它将/api/v
我是否使用了错误的URL访问api?是的,您使用了错误的IP。只需点击
http://localhost:1598/api/values
因为Docker for Windows不会(默认)为公开端口绑定到不同的IP
编辑
另外,请确保在运行容器时实际公开了端口。另请查看允许任何主机名从以下位置连接的dotnet API的详细信息:
检查启动映像时是否正在打开端口:
docker run-it-p 5000:5000
这将打开实例内的端口5000,以在您的主机上打开端口5000
本地计算机,然后应可在127.0.0.1:5000上访问,或
localhost:5000
您还应该确保您正在接受中的任何主机名
Main()
在Program.cs
中,在
WebHostBuilder
在您的情况下,您将需要此端口绑定:1598:80
这与由VS 2017
构建的映像相关
试着建立自己的形象
D:\xx\TestPro>docker build -f DockerTestPro/dockerfile -t docker0115 .
然后运行容器
docker run -it -p 8066:80 docker0115
然后,通过http://localhost:8066/
您是否尝试过使用localhost:1598?您的意思是或。我在chrome浏览器中尝试了这两种方法。我的意思是在末端使用路径,所以http://localhost:1598/api/values
。这有用吗?我在chrome浏览器中尝试了这两个url。docker run-d--restart=always-p 1598:80 WebApplication1同样,请参见,这可能与您的问题有关。我不能完全确定细节。