首页 新闻 会员 周边 捐助

asp.net core 3.1 部署到docker不能访问

0
悬赏园豆:30 [待解决问题]

一个asp.net core 3.1创建的默认项目。我打算把它部署到docker,宿主环境是VMware中的CentOS7.我在本地发布了项目,上传到CentOS中,然后运行这行命令:

docker run -d -p 8081:80 -v /home/minyuan/DockerDemo/Project/publish:/app --workdir /app mcr.microsoft.com/dotnet/core/aspnet dotnet /app/ZhaoxiDemo.dll

显示容器是启动起来了,但是我从电脑本地请求虚拟机的8081端口请求不到网站。docker菜鸟一只

请教可能是什么原因。

于为源的主页 于为源 | 小虾三级 | 园豆:956
提问于:2020-10-18 03:09
< >
分享
所有回答(5)
1

进入容器内访问试试

docker exec -t 容器id curl -i localhost
dudu | 园豆:30431 (高人七级) | 2020-10-18 08:09

执行这条命令可以正常请求到内容。

支持(0) 反对(0) 于为源 | 园豆:956 (小虾三级) | 2020-10-20 01:03

关了宿主机防火墙也不行?

支持(0) 反对(0) 于为源 | 园豆:956 (小虾三级) | 2020-10-20 01:28
1

你端口没做映射吧

浅笑若风 | 园豆:245 (菜鸟二级) | 2020-10-18 19:41

端口映射是指?我应该是映射到8081了吧。我写的命令是有 -p 8081:80 这一个参数

支持(0) 反对(0) 于为源 | 园豆:956 (小虾三级) | 2020-10-20 01:02
0

本机确认 能连到 虚拟机的地址端口吗?

gt1987 | 园豆:1150 (小虾三级) | 2020-10-19 09:54

好像是访问不到地址造成的。但是我xshell能连,应该怎么做?谢谢

支持(0) 反对(0) 于为源 | 园豆:956 (小虾三级) | 2020-10-20 01:04

@于为源: 本机和虚拟机网络默认是不互连的,你百度一下吧,对网卡有些要求。
建议还是安装 docker windows版吧,部署容器后就可以直接访问了。非家庭版的windows都支持

支持(0) 反对(0) gt1987 | 园豆:1150 (小虾三级) | 2020-10-20 09:44
0

首先的宿主机上 通过 curl 命令测试一下发布出来的网站是否正常,不正常,再进入容器看输出的日志,正常,那就是宿主的端口防火墙没开,开了就Ok了

next_lfy | 园豆:220 (菜鸟二级) | 2020-10-19 11:48

关了防火墙。又出现新的错误。。

支持(0) 反对(0) 于为源 | 园豆:956 (小虾三级) | 2020-10-20 01:28
0

这个解决问题的思路不对啊,你用的虚拟机就在虚拟机里面执行 curl 就行了
能通就说明 docker 内部没有问题了
然后用虚拟机 IP访问 8081 能行就说明绑定的是 0.0.0.0:8081
然后本机再访问虚拟机端口, 不能就说明是实体机和虚拟机交互的问题了

huiyuanai709 | 园豆:487 (菜鸟二级) | 2020-10-20 10:35

谢谢您,我给dudu回复的帖子有一个截图,我curl请求docker的localhost 80是正常的,我从虚拟机curl本机8081是失败的。

支持(0) 反对(0) 于为源 | 园豆:956 (小虾三级) | 2020-10-20 11:06

@于为源: 你可以看看 .net core 监听的是不是 0.0.0.0
在docker里面用 ip 访问,不是用localhost

支持(0) 反对(0) huiyuanai709 | 园豆:487 (菜鸟二级) | 2020-10-20 13:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册