在 Visual Studio 上关闭调试后如何访问在 docker 上运行的网站

sim*_*mas 6 debugging containers visual-studio docker docker-compose

我在 .net core 上构建了一个非常简单的 web 应用程序和 web api,并配置了 docker-compose 以让它们通过同一网络正确通信。

在 Visual Studio 上,当我在 Docker Compose 项目上点击播放时,它运行良好,Web 应用程序和 Web api 都可以正常工作和通信。

在 Docker 桌面应用程序上,我看到它们正在运行(绿色)。 在此处输入图片说明

但是当我关闭/停止 VS 上的调试器时,即使容器仍在运行,我也无法再访问网站。我认为 docker 作为一种 IIS 工作。

我是否误解了 docker 功能,或者我是否需要从CLI再次运行它们或将它们发布到某处或其他什么地方?我认为容器已启动并正在运行的事实应该意味着它们可以供我导航。

请帮帮我。

Nic*_*aly 0

你是对的,除非发生一些特殊的路由,否则容器正在运行这一事实意味着你的服务可用。

\n

您可以从命令中看到暴露的端口docker ps -a

\n
CONTAINER_ID: 560f78689902 \nIMAGE: moviedecisionweb:dev \nCOMMAND: "C:\\\\remote_debugger\\\\\xe2\x80\xa6"\nCREATED: About a minute ago\nSTATUS: Up About a minute \nPORTS: 0.0.0.0:52002->80/tcp, 0.0.0.0:52001->443/tcp \nNAMES: mdweb\n\nCONTAINER_ID: 1cd7f72426fe\nIMAGE: moviedecisionapi:dev\nCOMMAND: "C:\\\\remote_debugger\\\\\xe2\x80\xa6"\nCREATED: About a minute ago\nSTATUS: Up About a minute\nPORTS: 0.0.0.0:52005->80/tcp, 0.0.0.0:52004->443/tcp\nNAMES: mdapi\n
Run Code Online (Sandbox Code Playgroud)\n

根据提供的输出,您有两个正在运行的 docker 容器。

\n

我假设端口 80 和 443 分别为您的应用程序提供 HTTP 和 HTTPS 服务。

\n

基于此...

\n

对于容器“mdweb”,您应该能够通过以下方式从 docker 主机 (PC) 访问 docker 服务:

\n
    \n
  • http://本地主机:52002
  • \n
  • https://本地主机:52001
  • \n
\n

对于容器“mdapi”,您应该能够通过以下方式从 docker 主机 (PC) 访问 docker 服务:

\n
    \n
  • http://本地主机:52005
  • \n
  • https://本地主机:52004
  • \n
\n

我相信您可以在上面互换使用localhost, 127.0.0.1(但不能)。0.0.0.0

\n

您不能使用 docker HOST 计算机上的主机名“mdweb”或“mdapi” - 除非您已明确设置 DNS 来处理这些名称。但是,如果您位于同一 docker 网络上的 docker 容器内,则可以使用这些主机名。

\n

如果您提供更多信息(例如您的docker-compose.yml),我们可以进一步帮助您...

\n