【发布时间】:2021-11-28 21:33:00
【问题描述】:
我有一个简单的应用程序,它在端口 5001 上侦听 http 请求,并在该端口上收到 http 请求时返回“hello”。
然后我为应用程序构建映像并使用端口映射docker run -dp 5001:5001 --name web-server web-server 运行容器,但是当我转到浏览器并点击 localhost:5001 时,它就不起作用了。
所以,我 ssh 进入容器和curl localhost:5001,这个工作。
你能告诉我可能有什么问题或配置错误吗?
这是我的Dockerfile 文件
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
COPY ./bin/Release/net5.0 .
EXPOSE 5001
ENTRYPOINT ["dotnet", "WebServerFromScratch.dll"]
和docker container inspect中的NetworkSettings
"Ports": {
"5001/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "5001"
},
{
"HostIp": "::",
"HostPort": "5001"
}]
},
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "f227d735df3f23edc2f2aaf1a800bdeb70cf60caf50e08dc6b594b94cb38a1fb",
"EndpointID": "824ee71d4ed0a7e08080aeb728cf1f6821c5cdd7e2afbd6f1ca0327e68e47d44",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:02",
"DriverOpts": null
}
}
【问题讨论】:
-
不起作用是什么意思? localhost:5001 将命中本地机器端口
-
@viveknuna 它没有像我预期的那样返回“你好”
-
有什么错误吗?
-
在哪个 IP/接口上监听容器内的网络服务器? localhost/127.0.0.1/::1 不足以接受来自 172.17.0.0/16 的连接
-
试试看 ;) 我不能自己尝试。
标签: c# docker docker-network