如何解决在Visual Studio上关闭调试后如何访问在docker上运行的网站
我在.net核心上构建了一个非常简单的Web应用程序和Web api,并配置了docker-compose以使它们能够在同一网络上正确通信。
在Visual Studio上,当我在Docker Compose项目上玩游戏时,它运行良好,Web应用程序和Web api都可以正常工作并且可以正常通信。
但是当我在VS上关闭/停止调试器时,即使容器仍在运行,我也无法访问网站。我以为docker就像IIS一样。
我是否误解了docker功能,还是需要从 CLI 重新运行它们,还是将它们发布到什么地方或什么地方? 我认为,容器已启动并正在运行的事实应该意味着它们已经存在,可供我导航。
请帮帮我。
解决方法
您是正确的,除非发生某些特殊的路由,否则容器正在运行这一事实意味着您的服务可用。
您可以看到docker ps -a
命令公开的端口:
CONTAINER_ID: 560f78689902
IMAGE: moviedecisionweb:dev
COMMAND: "C:\\remote_debugger\\…"
CREATED: About a minute ago
STATUS: Up About a minute
PORTS: 0.0.0.0:52002->80/tcp,0.0.0.0:52001->443/tcp
NAMES: mdweb
CONTAINER_ID: 1cd7f72426fe
IMAGE: moviedecisionapi:dev
COMMAND: "C:\\remote_debugger\\…"
CREATED: About a minute ago
STATUS: Up About a minute
PORTS: 0.0.0.0:52005->80/tcp,0.0.0.0:52004->443/tcp
NAMES: mdapi
基于提供的输出,您有两个正在运行的Docker容器。
我假设端口80和443正在分别从您的应用程序提供HTTP和HTTPS服务。
基于此...
对于容器“ mdweb”,您应该能够通过以下方式从Docker主机(PC)访问Docker服务:
对于容器“ mdapi”,您应该能够通过以下方式从Docker主机(PC)访问Docker服务:
我相信您可以在上面交替使用localhost
,127.0.0.1
和0.0.0.0
。
您不能在Docker HOST计算机上使用主机名“ mdweb”或“ mdapi”-除非您已明确设置DNS以处理这些名称。但是,如果您位于同一docker网络上的docker容器中,则可以使用这些主机名。
如果您提供了更多信息(例如您的docker-compose.yml
),我们可以为您提供进一步的帮助...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。